我遇到了 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 上,这会让这一切变得更容易。欢迎在那里点赞。