〇、安装前的确认
WSL,Windows Subsystem for Linux。 允许用户直接在Windows上运行Linux环境,无需单独的虚拟机或双重启动。 是Win10、Win11自带的功能,默认关闭。
版本要求: Win11 或者 Win10 18362以上
检查版本 win+R,输入winver
或者在cmd中输入ver
一、系统准备启用虚拟化功能
重启电脑进入BIOS/UEFI 开启Intel VT-x或AMD-V虚拟化支持 【默认是开启的】
1、Win+S,打开搜索,输入"启用或关闭Windows功能"。

2、勾选"适用于 Linux 的 Windows 子系统",点击确定,然后重启电脑。
二、启用WSL
1、powershell 复制下载
dism.exe /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

2、安装WSL2 powershell 复制下载
wsl --install
3、将WSL2设置为默认版本 以管理员身份打开PowerShell并运行以下命令 wsl --set-default-version 2
4、重启系统
5、下载最新版本的Linux内核更新包
6、双击运行更新包,点击是,批准安装
三、安装Linux发行版
1、访问Microsoft Store,选择Ubuntu,点击进行安装。
替代方案:如果无法打开Microsoft Store

输入网址:apps.microsoft.com/detail/9pdx...
回车下载后缀名为.appxbundle的文件

在Powershell中输入Add-AppxPackage -Path Ubuntu安装包路径
回车,安装

5、安装完成后,在Powershell中再次输入bash
,即可进入ubuntu的shell,第一次进入会提示设置用户名和密码,这里设置用户名为voidking。
使用方法和正常的ubuntu一模一样,nice。当然也有不同的地方,比如c盘对应的目录为/mnt/c/
,d盘对应的目录为/mnt/d/
。
3. 配置SSH
从Powershell进入bash,很难用,比如无法复制粘贴。所以,我们需要配置SSH,以便使用xshell访问。
1、切换root用户并设置密码
sudo -i
passwd
2、安装ssh服务
apt-get install openssh-server
3、vim /etc/ssh/sshd_config
,如下修改:
yaml
# line 13, uncomment and change
Port 3422
# line 15, uncomment
ListenAddress 0.0.0.0
# line 32, uncomment and change
PermitRootLogin yes
# line 56, change
PasswordAuthentication yes
4、重启ssh
service ssh restart
如果报错:
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
处理方法为:
bash
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ecdsa_key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_ed25519_key
5、ubuntu中本地测试
ssh voidking@localhost -p 3422
6、windows中xshell连接
新建会话,主机填写127.0.0.1
,端口填写3422
,用户名密码是之前安装ubuntu时设置的。

4.开机自启动SSH
重启计算机后,发现无法通过ssh连接ubuntu,原来是因为ubuntu on windows默认不会开机自启动ssh服务。所以需要把ssh服务添加到开启自启动。
直接使用systemctl enable ssh
命令,无效,所以需要把ssh服务添加到开机自启动脚本,参考ubuntu18.04配置rc.local。
1、创建rc-local.service链接
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
2、vim /etc/systemd/system/rc-local.service
,添加:
ini
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
3、创建rc.local
vim /etc/rc.local
,添加:
bash
#!/bin/bash
/etc/init.d/ssh start
exit 0
4、添加执行权限
chmod 755 /etc/rc.local
5、重启ubuntu
无法使用reboot
等命令重启ubuntu on windows,所以需要重启win10。
然而,重启后依然无效!看来是ubuntu on windows与纯净的ubuntu还是有些差别,参考在Windows子系统(WSL)中配置开机自启动服务进行处理。
1、win10中进入启动目录
Win+R输入shell:startup
,回车
2、创建wls_rclocal.vbs,内容为:
arduino
set ws=wscript.createobject("wscript.shell")
ws.run "C:\Windows\System32\bash.exe -c 'sudo /etc/rc.local'",0
3、登录ubuntu,创建sudoers文件
vim /etc/sudoers.d/rc-local
,内容如下:
javascript
voidking * = (root) NOPASSWD: /etc/rc.local
4、重启win10,使用xshell登录ubuntu,成功。