目录
一、安装WSL2.0
二、安装Ubuntu20.04LTS
三、配置ssh
四、设置分发版本
五、常见问题解决
5.1 安装失败并出现错误 0x80070003
5.2 WslRegisterDistribution 失败并出现错误 0x8007019e
5.3 安装失败,出现错误 0x80070003 或错误 0x80370102
5.4 尝试升级时出错:Invalid command line option: wsl --set-version Ubuntu 2
5.5 由于虚拟磁盘系统的某个限制,无法完成所请求的操作。虚拟硬盘文件必须是解压缩的且未加密的,并且不能是稀疏的
5.6 无法将词语“wsl”识别为 cmdlet、函数、脚本文件或可运行程序的名称
5.7 错误:此更新仅适用于装有适用于 Linux 的 Windows 子系统的计算机
5.8 错误:WSL 2 要求对其内核组件进行更新
六、忘记WSL密码
WSL2.0相比WSL1.0具备完整的Linux内核、托管VM和完全的系统调用兼容性,所以我们这里使用WSL2.0
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2. 检查WSL2的要求:win+R打开运行,然后输入winver检查windows版本
查看Linux版本
3. 此版本需要大于1903
4. 启用虚拟化:以管理员打开powershell输入下列命令
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
5. 下载X64的WSL2 Linux内核升级包并安装
6. 设置WSL默认版本
wsl --set-default-version 2
2. 一般Windows都会将ubuntu加入到我的软件库中,如果没有可以自行搜索ubuntu然后安装,搜索到商店的有可能安装不了
3. 找到Ubuntu 20.04LTS点击安装即可,这里我已经安装好了直接点击启动就行
4. 打开后设置初始的用户名和密码即可,如果出现参考的对象类型不支持尝试的操作,请重置下网络net winsock reset
5. 设置root密码
sudo passwd
修改配置文件/etc/ssh/sshd_config,开启下列选项
PermitRootLogin yes #允许root认证登录
PasswordAuthentication yes #允许密码认证
RSAAuthentication yes #秘钥认证
PubkeyAuthentication yes
2. 由于自带的openssh-server没有生成密钥所以需要生成密钥文件,否则会出现sshd: no hostkeys available -- exiting.
ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
3. 启动ssh
service ssh start
4. 开机启动ssh:win+R打开运行,输入shell::startup进入开机启动项,创建wsl_ssh_start.bat,其内容为
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu2004.exe run "sudo service ssh restart"
5. 设置默认root登录:以管理员打开powshell,输入以下命令,
注意:用户名需要替换掉,版本页需要替换掉,如果wsl的路径不在这里可以去C:\Program Files\WindowsApps\XXX.UbuntuXXX\ubuntu版本.exe
C:\Users\用户名\AppData\Local\Microsoft\WindowsApps\ubuntu版本.exe config --default-user root
检查分配给已安装Linux的WSL版本wsl -l -v
wsl --list --verbose
设置分发版本为某个wsl版本
wsl --set-version
适用于 Linux 的 Windows 子系统只能在系统驱动器(通常是 C: 驱动器)中运行。 请确保分发版存储在系统驱动器上:打开“设置”->“系统”-->“存储”-> “更多存储设置”: 更改新内容的保存位置”
未启用“适用于 Linux 的 Windows 子系统”可选组件:
打开“控制面板” -> “程序和功能” -> “打开或关闭 Windows 功能”-> 选中“适用于 Linux 的 Windows 子系统”,或使用本文开头所述的 PowerShell cmdlet。
请确保在计算机的 BIOS 内已启用虚拟化。 有关如何执行此操作的说明因计算机而异,并且很可能在 CPU 相关选项下。WSL2 要求 CPU 支持二级地址转换 (SLAT) 功能,后者已在 Intel Nehalem 处理器(Intel Core 第一代)和 AMD Opteron 中引入。 即使成功安装了虚拟机平台,旧版 CPU(例如 Intel Core 2 Duo)也无法运行 WSL2。
请确保已启用适用于 Linux 的 Windows 子系统,并且你使用的是 Windows 内部版本 18362 或更高版本。 若要启用 WSL,请在 PowerShell 提示符下以具有管理员权限的身份运行此命令:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux。
请确保已安装“适用于 Linux 的 Windows 子系统”可选组件。 此外,如果你使用的是 ARM64 设备,并从 PowerShell 运行此命令,则会收到此错误。 请改为从 PowerShell Core 或从命令提示符运行 wsl.exe。
如果 %SystemRoot%\system32\lxss\tools 文件夹中缺少 Linux 内核包,会遇到此错误。 若要解决此问题,请在安装说明的步骤 #4 中安装 Linux 内核更新 MSI 包。 可能会需要从添加或删除程序卸载 MSI,然后重新安装。
如果忘记了 Linux 分发版的密码: