如果已安装 ubuntu 和 ubuntu 20.04,如何从 Windows 商店获取 ubuntu 18.04

如果已安装 ubuntu 和 ubuntu 20.04,如何从 Windows 商店获取 ubuntu 18.04

我遇到了 Windows 商店问题。

我已经从它(Windows 商店)获得了“ubuntu”和“ubuntu 20.4”,但是我现在想安装“ubuntu 18.04”作为该版本的第二个副本(标记为 ubuntu 的也是 18.04),这样我就有两个副本,并且我可以在“金丝雀版本”中尝试一些东西,而不会破坏我的工作副本。

我进入 Windows 商店并选择“ubuntu 18.04”,然后出现一个带有“获取”按钮的页面。

但是,当我“推送”它(用鼠标单击“获取”按钮)时,什么也没有发生。

那么,如何安装第二份“ubuntu 18.04”以供 WSL 使用?

答案1

我不确定为什么你从 Microsoft Store 安装“Ubuntu 18.04”发行版失败。你应该能够安装以下任一发行版:

  • “Ubuntu”:安装时的最新版本。幸运的是,您最初安装时,它显然是 18.04。
  • “Ubuntu 20.04”:即使您已经安装了“Ubuntu”发行版,也会强制安装 20.04。如果“Ubuntu”是 20.04,那么这将安装 20.04 的第二个副本。
  • “Ubuntu 18.04”:即使您已经安装了“Ubuntu”发行版,也会强制安装 18.04。如果“Ubuntu”是 18.04,那么这将安装 18.04 的第二个副本。

但正如你所说,它对你来说并不是那样的。

好消息是,有一个解决方法可以让你实现最终目标。

由于您已经安装了 18.04,因此“原始”分发文件应该在 AppX 包目录中可用(尽管隐藏)。要找到它,请在提升的(管理)PowerShell 提示符下运行以下命令:

Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\*' |
Where-Object {$_.Name -eq 'install.tar.gz' } |
% { $_.FullName }

(特别感谢 Reddit 上的 u/zoredache

查找适用于 Ubuntu 的版本(不是 20.04)。我们希望/假设它是 18.04。

  • 在某处创建一个名为“WSL”(或任何您喜欢的名称)的目录(如果您想为这个新发行版利用另一个驱动器上的空间,则不必在 C: 驱动器上)。

  • 创建两个子目录“实例”和“图像”(我将假设这些名称在后续说明中适用,但你可以采用不同的方式)

  • install.tar.gz文件复制到...\WSL\images目录。

  • 将其解压缩,但保留其焦油部分。

  • (推荐)重命名文件。例如Ubuntu18.04_fresh_install.tar

  • 更改至父WSL目录。

  • mkdir instances\Ubuntu18.04

  • wsl --import Ubuntu18.04 instances\Ubuntu18.04 images\Ubuntu18.04_fresh_install.tar --version 2使用(或 1,如果需要 WSL1)创建 Ubuntu 18.04 的新实例。

  • 测试一下——wsl -d Ubuntu18.04

  • 新实例将默认以 root 身份启动。您需要通过/etc/wsl.conf以下方式创建用户名:

    [user]
    default=me
    

    ...当然,替换您的用户名。

  • 退出并重新启动该发行版,并确认您的环境按预期运行。

install.tar.gz我倾向于...\wsl\images在每次从商店安装时在我的目录中创建一个“原始”备份映像,而不是依赖 AppX 包wsl --export。我还在该目录中保留了每个发行版的一些首选配置备份。这样就可以随时轻松地启动新的“一次性”发行版来测试。

值得一提的是,我已提交了一份功能要求在 WSL Github 上,这会让这一切变得更容易。欢迎在那里点赞。

相关内容