Win10安装Linux子系统WSL

〇、安装前的确认

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

访问:store.rg-adguard.net/

输入网址: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,成功。

相关推荐
Linux_cy19 分钟前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
椒颜皮皮虾྅31 分钟前
模型部署不再卡在环境上:DeploySharp 四大推理引擎与 Windows/Linux 离线交付实战
linux·运维·开发语言·人工智能·windows·计算机视觉·cuda
垆边人似月.1 小时前
Ubuntu 配置 Samba 共享文件夹并映射到 Windows 完整指南
linux·windows·ubuntu
Lazionr1 小时前
【Linux 修炼录】:文件查看、时间查询与查找
linux
corey931 小时前
Linux 学习 - 第十四周作业
linux·运维·学习
可乐_不渴1 小时前
# C语言文件操作全解析:从 fopen 到 fclose,一文吃透文件 IO
linux·服务器·c语言
草莓熊Lotso2 小时前
【C++ 基于微服务的即时通讯系统】网关基建:cpp-httplib 与 WebSocketpp 从入门到实战
linux·开发语言·数据库·c++·redis·微服务·云原生
Ruiery10 小时前
Linux 6.6内核内存管理深度解析(十六):mmap — 用户态“申请内存“的真相
linux·运维·服务器
欧米欧10 小时前
Linux系统篇(七),环境变量的底层溯源,核心获取机制与安全应用
linux·运维·服务器
Ruiery11 小时前
Linux 6.6内核内存管理深度解析(十八):KASLR 内核地址空间随机化
linux·运维·服务器·安全