自从上个版本的 Windows 10(1709) 更新开始,Linux 子系统脱离了测试,正式成为了一个稳定的可选功能,我就尝试着使用了一下这个东西。

真是太方便了,各种常用的编译器都能使用(我还在电脑上编译了 VASP),还有各种 Linux 上的软件,比如我用来同步服务器上备份文件的 rsync 都能很稳定的运行。

不过今天早晨重启电脑之后,打开安装在电脑里的 Ubuntu 18.04 时,突然报错

Installing, this may take a few minutes...
WslRegisterDistribution failed blabla

不过这个问题难不到我,因为我拥有搜索引擎。我在 这里 找到了答案。

你需要做的是用管理员权限打开 cmd,然后重启 LxssManager,之后问题就解决了。

sc query LxssManager
sc stop LxssManager
sc start LxssManager

很好奇的搜索了一下 LxssManager,发现微软有一个 文章 提到过它。

The LXSS Manager Service is a broker to the Linux subsystem driver and is the way Bash.exe invokes Linux binaries. The service is also used for synchronization around install and uninstall, allowing only one process to do those operations at a time and blocking Linux binaries from being launched while the operation is pending.

我今天的问题,大概就是这个服务同步状态的时候出错,导致 Bash.exe 不知道我已经装好了 Ubuntu 18.04,想重新安装,结果发生了冲突报错了吧。重启这个服务之后就恢复了正常。


没想到今天突然又遇到无法启动的问题,提示我 占位程序接收到错误数据

老样子,通过搜索,找到相关议题 Error: "The stub received bad data"

需要在管理员权限下运行以下命令后重启,便可解决问题。

netsh winsock reset

标签: Windows 10, 无法启动, WSL