windows子系统-wsl命令基础用法和无响应问题排查及解决方法


windows子系统-wsl命令基础用法和无响应问题排查及解决方法一、资料微软帮助手册博文资料

安装问题排查

二、最低系统要求

若要更新到 WSL 2,石材翻新13825404095需要运行 Windows 10。
对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。
如果运行的是 Windows 10 版本1903 或 1909,请在 Windows 菜单中打开“设置”,导航到“更新和安全性”,然后选择“检查更新”。 内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049

注:查看系统版本号命令:winver

三、常用命令

wsl --status //检查 WSL 状态

wsl //进入默认的发行版本,退出执行 exit

wsl -l -v //列出已安装的 Linux 发行版

wsl --terminate //终止指定的发行版或阻止其运行

例:wsl --terminate Ubuntu-18.04

wsl --shutdown //重启wsl服务

wsl --set-default //设置默认 Linux 发行版

wsl --set-version //将WSL版本设置为1或2

wsl --set-default-version //设置默认 WSL 版本

wsl --distribution --user //运行特定的Linux发行版

wsl -u , wsl --user //以特定用户的身份运行

wsl config --default-user //更改发行版的默认用户

wsl --unregister //注销或卸载 Linux 发行版

四、检测wsl环境

>wsl --status 默认版本:2 适用于 Linux 的 Windows 子系统最后更新于 2022/4/15 适用于 Linux 的 Windows 子系统内核可以使用“wsl --update”手动更新,但由于你的系统设置,无法进行自动更新。 若要接收自动内核更新,请启用 Windows 更新设置:“在更新 Windows 时接收其他 Microsoft 产品的更新”。 有关详细信息,请访问https://aka.ms/wsl2kernel。 内核版本: 5.10.16

五、问题汇总问题一:执行命令wsl,提示“系统找不到指定的路径。”

出现错误:如果出现“系统找不到指定的文件”的提示,是因为之前安装的没有卸载的原因。
方法一:使用命令卸载和安装指定发现版本

命令:wsl -l -v //查看安装的发行版本和默认版本信息

命令:wsl --unregister Ubuntu-18.04 //卸载名为“Ubuntu-18.04”的发行版本

使用powerShell执行安装命令:

Add-AppxPackage C:\wslApps\Ubuntu_1804.2019.522.0_x64.appx

Add-AppxPackage C:\wslApps\Ubuntu_2204.1.7.0_x64.appx

注:如果安装完后执行 wsl -l -v 提示“没有可用发行版本”,可用方法二安装

方法二:解压 *.appx 文件安装

将文件Ubuntu_1804.2019.522.0_x64.appx后缀改为.zip

解压Ubuntu_1804.2019.522.0_x64.zip文件

直接双击运行.\Ubuntu_1804.2019.522.0_x64\ubuntu1804.exe文件

首次运行需要创建用户名、密码(都填test)

再次执行wsl,可以顺利进入ubunt系统

执行exist可退出子系统

问题二:如果出现参考的对象类型不支持尝试的操作,请重置下网络

执行命令: net winsock reset

重启电脑

问题三:运行一段时间后系统无法进入,执行wsl命令无响应

原因:子系统运行依赖的服务LxssManager停止工作,导致wsl命令无响应。
解决方法是重启LXSSManager服务,但是直接在服务管理器(service.msc)中操作该服务提示“访问拒绝”。可以通过用以下方法找到并结束LxssManager服务宿主进程svchost.exe的PID结束相关进程,之后刷新服务,点击“启动”重新启动该服务。

方法1:

tasklist /svc /fi “imagename eq svchost.exe”

搜索 LxssManager 并获取 PID

以管理员身份运行任务管理器,在详细信息选项卡中,搜索包含 PID 的 svchost.exe

右键单击它并选择“结束进程树”。

在服务管理器中找到LxssManager,点击启动。(如果没有启动按钮,可以右键刷新下)

执行:wsl --status 命令正常执行。(此时服务管理器中LXSSManager状态为运行中)

方法2:

tasklist /svc /fi “services eq LxssManager” //查进程ID

wmic process where processid=29984 delete //结束指定PID进程

在服务管理器中启动LxssManager服务

wsl --status //命令正常执行

C:\Users\用户名>tasklist /svc /fi "services eq LxssManager" 映像名称 PID 服务 ========================= ======== ============================================ svchost.exe 29984 LxssManager C:\Users\用户名>tasklist /svc /fi "services eq LxssManager" 映像名称 PID 服务 ========================= ======== ============================================ svchost.exe 29984 LxssManager C:\Users\用户名>wmic process where processid=29984 delete 删除实例 \\DESKTOP-2VBQPJK\ROOT\CIMV2:Win32_Process.Handle="29984" 实例删除成功。 C:\Users\用户名>wsl --status 默认分发:Ubuntu-18.04 默认版本:2 适用于 Linux 的 Windows 子系统最后更新于 2023/3/7 适用于 Linux 的 Windows 子系统内核可以使用“wsl --update”手动更新,但由于你的系统设置,无法进行自动更新。 若要接收自动内核更新,请启用 Windows 更新设置:“在更新 Windows 时接收其他 Microsoft 产品的更新”。 有关详细信息,请访问https://aka.ms/wsl2kernel。 内核版本: 5.10.16 C:\Users\用户名>

2024-12-20 13:10 点击量:10