Windows10使用WSL及遇到的问题解决
一、相关说明
- 版本 Windows 10 专业版
- 版本号 22H2
本文所使用教程主要来源于微软官方文档:WSL文档
WSL即适用于Linux的Windows子系统,它能让开发人员直接在Windows上按原样运行GNU/Linux环境,且不会产生传统虚拟机或双启动设置开销。
二、安装WSL
1. 前提条件
- Windows 10 版本2004及更高版本或Windows11
- 更早版本见手动安装
2. 安装WSL
管理员模式命令行或PowerShell运行下面命令
wsl --install
可能会出现无法安装的问题,主要看网络。可以使用手动安装
三、WSL使用
1. 如何使用WSL
(1)使用Windows终端(推荐)
(2)访问Windows菜单
通过访问Windows开始菜单中键入的发行版名称直接打开Linux发行版
(3)在命令行或Powershell直接键入Linux发行版名称使用
(4)使用wsl命令使用默认Linux发行版
(5)通过wsl使用linux系统命令
wsl [coomand]
2. 相关指令
(1)设置linu发行版的wsl版本
wsl --set-version <distro name> 2
distro name就是我们发行版的名称
(2)列出已安装的发行版
wsl -l -v
(3)将WSL中Linux镜像导出
wsl --export Ubuntu D:\Ubuntu.tar
(4)将导出的镜像导入
wsl --import Ubuntu D:\Ubuntu D:\Ubuntu.tar --version 2
(5)卸载镜像
wsl --unregister Ubuntu
四、遇到的问题及解决方案
1. 不能使用systemctl
(1)可以尝试使用service进行服务的start、status、stop、restart等操作
(2)修改WSL配置项
在linux子系统中输入如下命令
# 首先,在/etc/wsl.conf中添加配置项systemd=true,如果已配置则忽略该命令
echo -e "[boot]\nsystemd=true" | sudo tee -a /etc/wsl.conf
# 然后,判断是否启动systemd
ps --no-headers -o comm 1
如果返回init,说明没成功,可以尝试管理员模式打开powershell里更新wsl
# 使用--web-download是从github上下载安装包,否则默认使用ms store
wsl --update --web-download
2. 修改hostname和hosts文件重启后失效
进入/etc
目录,编辑wsl.conf,如果没有就创建
vim /etc/wsl.conf
输入以下参数:
[network]
hostname=YourHostName
generateHosts=false
配置 | 说明 |
---|---|
hostname | 设置当前WSL主机名称 |
generateHosts | 是否自动生成hosts文件 |
配置好之后需要重启指定的WSL主机
wsl -t YourWSLName
wsl -d YourWSLName
3. 使用wsl出现卡死
(1)重启LxssManager
#停止LxssManager服务
net stop LxssManager
#启动LxssManager服务
net start LxssManager
# 如果停止不了查找进程ID,手动杀死
tasklist /svc /fi "imagename eq svchost.exe" | findstr Lxss
(2) 使用PowerShell进行wsl操作
使用原始的Windows命令行会出现卡死的情况,改用PowerShell之后就没有出现过这种情况,建议使用Windows终端并设置默认打开终端为PowerShell使用。