前提说明
本教程安装的子系统为WSL1,一般的云服务器也只能支持WSL1,WSL2就需要母鸡支持,而且套娃了性能大概没有WSL1好,下面引用资料解释WSL1代和2代的区别:
相比较于WSL 1使用翻译层将linux系统调用转化成windows系统调用,WSL 2使用了一个轻量级的、无需维护的虚拟机,并在这个虚拟机中运行了一个完整的linux内核。 WSL 2使用一个VHD虚拟磁盘文件作为linux发行版的根目录,其中使用ext4文件系统格式,极大提升了IO性能。
博主安装WSL后进行了测试,宝塔面板可以正常安装,无法使用systemctl守护进程,Docker等需要虚拟化的服务均无法安装和使用,所以总结下来,就是个玩具,有需要完整体验linux的情况下,直接安装linux vps或者在具有CPU虚拟化的独服上安装WSL2。
检测以及打开所需的相关依赖
打开bios的虚拟化(CPU虚拟化)
必须,缺少此项无法使用WSL2,只能使用WSL1!!一般的VPS服务器母鸡不支持嵌套,所以无法启用WSL2!
【虚拟化:已启用】==》启用虚拟化==》可以使用WSL2
【虚拟化:是】==》未启用虚拟化或不支持==》只能使用WSL1
控制面板启用hyper-V和容器 => 程序和功能 => 打开或关闭 Windows 功能
开始安装WSL子系统
启用Windows Linux子系统功能
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
下载Ubuntu20.04分发包
curl.exe -Lo Ubuntu_2004.appx https://aka.ms/wslubuntu2004
用分发包安装Ubuntu2004
Add-AppxPackage Ubuntu_2004.appx
WSL初始化
找到如下图点击,需要初始化较长时间,等待就好
等一会会开始配置WSL子系统的账户和密码了,按照提示输入,WSL子系统安装完成。
可能遇到的报错(大概率)
Error 0x80370102
原因:CPU虚拟化未启动或hyper-V服务未启动
解决方法:对于vps(腾讯云等kvm云服务)大概率由于vps母鸡不支持虚拟化,但是过高版本的windows service服务器默认使用WSL2,所以我们需要手动调整为WSL1,使用下面命令:
wsl --set-default-version 1 ##切换默认wsl为第1代
wsl -l -v ##查看版本是否切换成功
如果为独服或者自己的电脑,出现此报错,请按照上面【检测以及打开所需的相关依赖】自检!
error: 0x800701bc
原因:造成该问题的原因是WSL版本由原来的WSL1升级到WSL2后,内核没有升级。
解决方法:前往微软WSL官网下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包即可。点击下载。
启动子系统的后续操作
安装并启动ssh
#安装
sudo apt-get install openssh-server
#修改配置启动密码登录
sudo vim /etc/ssh/sshd_config
将PasswordAuthentication no改为yes,并将前面注释去掉,保存
#启动
sudo service ssh start
参考文章
win10 WSL2问题解决WslRegisterDistribution failed with error: 0x800701bc
How to Fix WSL Register Distribution Error 0x80370102 on Windows 10?
旧版 WSL 的手动安装步骤
WslRegisterDistribution failed with error: 0x800701bc
Error 0x80370102
腾讯云轻量应用服务器国内机安装Windows10 Ltsc并安装WSL子系统Linux双系统安装宝塔教程