〇、安装前的确认
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
查看可安装的发行版
wsl --list --online
powershell 复制下载
wsl --install
如果失败可以试试wsl --install -d Ubuntu
3、将WSL2设置为默认版本
以管理员身份打开PowerShell并运行以下命令
wsl --set-default-version 2
4、重启系统
5、下载最新版本的Linux内核更新包
6、双击运行更新包,点击是,批准安装
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,如下修改:
# 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
处理方法为:
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,添加:
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
3、创建rc.local
vim /etc/rc.local,添加:
#!/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,内容为:
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,内容如下:
voidking * = (root) NOPASSWD: /etc/rc.local
4、重启win10,使用xshell登录ubuntu,成功。
常用命令
1、如何查看WSL的版本
wsl --list --verbose
或者
wsl -l -v
2、如何查看WSL