如何更改 Ubuntu.exe 使用的 rootfs 位置

How to change rootfs location used by Ubuntu.exe

我在 Windows 10 上启用了 WSL。我已经从 Microsoft 商店安装了 Ubuntu,我可以从开始> Ubuntu 启动它(可执行文件的位置是

C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_1804.2020.5.0_x64__79rhkp1fndgsc/ubuntu.exe

Winaero's tutorial 之后,我能够通过导出默认的 rootfs 并将其导入到位于 D:\Wsl\NewUbuntu 的新文件夹,在单独的硬盘 (D:) 上创建一个新的发行版。现在我可以 运行 Microsoft Powershell,键入 wsl 和 select 我的新发行版作为默认位置。

我的问题是当我从“开始”> Ubuntu 运行 Ubuntu 时。该应用始终使用旧位置 (C:\Users\myuser\Appdata\Local\Packages\CanonicalSomeCode\LocalState\rootfs)。我怎样才能从我的“开始”菜单中 运行 Ubuntu.exe 并使其使用位于 D:\Wsl 的新位置的 rootfs?

在问题中,OP 已经将已安装的 Ubuntu 发行版移动到 不同的驱动器。所以,答案从下一步开始。

注册导出的发行版后,可以用wsl.exe -d启动 命令。但是 Ubuntu.exe,Windows 附带的官方启动器 存储包,首先检查是否有恰好 "Ubuntu" 的发行版名称 已经登记了。参见 WslIsDistributionRegistered() 中的函数调用 DistroLauncher.cpp 了解更多关于支票的信息。那么,新注册的 分发必须准确命名 "Ubuntu"。例如,

  • 使用此命令注册:
wsl.exe --import Ubuntu <InstallLocation> <FileName>
  • 设置默认用户:
Ubuntu.exe config --default-user <UserName>

不同的 Windows 存储包的分发名称不同。例如 "Ubuntu-16.04" 用于 Ubuntu Xenial and "Ubuntu-18.04" for Ubuntu Bionic.