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,成功。

相关推荐
@Aurora.16 分钟前
【项目日记(三)】
linux·服务器·网络
白总Server1 小时前
Nginx 中间件
大数据·linux·运维·服务器·nginx·bash·web
望获linux2 小时前
实时操作系统在服务型机器人中的关键作用
linux·机器人·操作系统·开源软件·rtos·具身智能
哈哈幸运2 小时前
Linux Sed 深度解析:从日志清洗到 K8s 等12个高频场景
linux·运维·编辑器·sed
心随_风动2 小时前
主流操作系统对比分析(macOS、Linux、Windows、Unix)
linux·windows·macos
啊吧怪不啊吧3 小时前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
陈大大陈4 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存
maotou5264 小时前
Ubuntu22学习记录
linux·ubuntu
杨凯凡4 小时前
Linux安全防护:全方位服务安全配置指南
linux·运维·服务器·安全
李菠菜4 小时前
CentOS系统中重置Root用户密码的完整步骤详解
linux·运维