这个问题最初发布在 Ask Ubuntu 上这里,但由于它在非 Ubuntu WSL 发行版(甚至非 WSL 应用程序)中很常见,因此我被要求在 Super User 上重新创建它。原始版本将被关闭,但目前仍可作为参考。请将所有评论和答案直接发送到这个 Super User 问题。
在 Windows 10 上从 Microsoft Store 安装应用程序后,它最初可以运行。但是,当我重新启动 Windows 时,该应用程序消失了。它不再出现在“开始”菜单中。这可能是什么原因造成的?
我最初在使用 Microsoft Store 的 WSL2 安装 Ubuntu 20.04 时注意到了这个问题。系统运行时它运行良好,但重新启动时它被卸载或消失了。我可以重新安装它,它可以工作,但每次重新启动都会导致它再次消失。
根据评论,我们确定:
WSL 本身仍处于安装状态。该
wsl -l -v
命令有效,但显示:Windows Subsystem for Linux has no installed distributions
但是,在重新启动之前,它正确显示了 Ubuntu 20.04 版本 2。
此外,商店软件包似乎已被完全卸载。
安装 Ubuntu 后,
Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\' | Where-Object {$_.Name -eq 'install.tar.gz' } | ForEach-Object { $_.Directory.BaseName }
在 PowerShell 中运行结果为:ConicalGroupLimited.Ubuntu20.04onWindows_2004_2021.825.0_x64__79rhkplfndgsc
但重启后,没有显示任何结果。
Ubuntu 18.04 也出现了同样的问题。
然后我们发现即使从商店安装非 WSL 应用程序也会出现同样的问题。
答案1
想知道您是否曾经成功过,但为可能遇到此问题的其他人提出了针对 WSL(仅限 WSL)的可能解决方案。当然,最好能解决核心问题,以便应用程序在重启后不会被卸载,但如果您确实需要没有应用程序的 WSL,您可以使用此方法。
如果已安装的 Microsoft Store 应用程序被重置,但 WSL 本身仍安装(我们通过 进行了验证wsl -l -v
),那么您应该能够“断开”Ubuntu WSL 安装与 Store 安装之间的连接。
注意:这假设 WindowsDocuments
目录中的文件是不是正在重置。
去做这个:
从 Microsoft Store 安装“Ubuntu”。您也可以使用其中一个“版本化”版本,例如“Ubuntu 20.04”,但请注意,您需要相应地调整以下命令中的名称。
首次启动时它会要求您创建用户名和密码。
退出
启动 PowerShell
wsl -l -v
显示已安装的发行版。应该只有一个Ubuntu
。PowerShell 中的其他内容:
wsl --shutdown cd ~\Documents mkdir wsl\instances\MyUbuntu mkdir wsl\images wsl --export Ubuntu wsl\images\ubuntu.tar wsl --import MyUbuntu wsl\instances\MyUbuntu wsl\images\ubuntu.tar --version 2 wsl --set-default MyUbuntu wsl -l -v # should show both Ubuntu and MyUbuntu in the list wsl
您现在应该已进入
MyUbuntu
实例。使用 确认echo $WSL_DISTRO_NAME
。您还应该是 root,因为 WSL 不会自动为
--import
ed 实例设置默认用户。要更改此设置:sudo -e /etc/wsl.conf
将以下内容添加到该文件:
[user] default=yourWSLusername
这应该设置为您在上面的初始 Ubuntu 安装期间创建的用户名。
退出 WSL(返回 PowerShell)并:
wsl --terminate MyUbuntu
就是这样。现在你应该已经MyUbuntu
安装好了 WSL 发行版/实例,即使 Ubuntu应用程序重启后将被卸载。
要运行它,请使用wsl
命令而不是命令。如果您愿意,ubuntu
您可以在“开始”菜单中添加快捷方式。wsl