从 Microsoft Store 安装的应用程序在重启后消失

从 Microsoft Store 安装的应用程序在重启后消失

这个问题最初发布在 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 不会自动为--imported 实例设置默认用户。要更改此设置:

    sudo -e /etc/wsl.conf
    
  • 将以下内容添加到该文件:

    [user]
    default=yourWSLusername
    

    这应该设置为您在上面的初始 Ubuntu 安装期间创建的用户名。

  • 退出 WSL(返回 PowerShell)并:

    wsl --terminate MyUbuntu
    

就是这样。现在你应该已经MyUbuntu安装好了 WSL 发行版/实例,即使 Ubuntu应用程序重启后将被卸载。

要运行它,请使用wsl命令而不是命令。如果您愿意,ubuntu您可以在“开始”菜单中添加快捷方式。wsl

相关内容