如何更改 WSL 发行版的名称以反映实际发行版?

如何更改 WSL 发行版的名称以反映实际发行版?

我的 Windows 10 机器上安装了 WSL 2。我切换到版本 1,并使用 do-release-upgrade 命令从 Ubuntu 18.04 升级到 19.04。然后我尝试切换到 WSL 2,但我注意到的输出是wsl -l -vUbuntu 18.04,而不是 19.04,但在运行 Ubuntu 提示符时,输出lsb_release -a准确为 19.04。然后我尝试将发行版移动到 WSL 2,并收到

Exporting the distribution failed.
bsdtar: Write error

错误。我希望将名称更新为实际发行版 (19.04) 可以解决此问题。有什么想法吗?可能它在 WSL 的某个配置文件中?

答案1

如果要重命名 WSL 发行版,则必须:

  1. 停止 WSL 的所有实例
  2. 打开注册表编辑器并转到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
  3. 找到要重命名的发行版,查找DistributionName
  4. 按照你的需要更改
  5. 再次启动WSL,你也可以执行wsl.exe -l -v来检查是否改变

答案2

(1):打开 Windows 注册表编辑器 ( regedit),然后将以下内容粘贴URI到其地址栏中:

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

(2):在左侧导航窗格中,检查如下所示的文件夹{xxxxxxxx-yyyy-xxxx-yyyy-xxxxxxxxxxxx}。(文件夹名称包含所有十六进制数字)。双击每个文件夹,直到找到要更改名称的 wsl 分发版。

(3):在右侧导航栏中,双击REG_SZ名为 的项目DistributionName,然后根据需要编辑其内容。保存。

(4):最后,重新启动wsl

  • Win + R在您的电脑上按下: 。
  • services.msc在弹出的搜索框中输入内容。
  • 在弹出的服务管理器工具中,找到LxssManager列表中的第一个条目,然后重新启动它。

那就可以了。

NOTE:不要跳过步骤(4),因为这样做会导致某些wsl应用程序启动时出错。例如,由于尚未刷新/重新启动,Visual Studio Code将无法正确启动。wsl

PS:不要忘记编辑应用程序启动图标的启动属性。任何指定-d distroName或选项wsl.exe [...]wslg.exe [...]图标都需要编辑。

答案3

我自己也遇到过这种情况。虽然它基本上只是表面问题,并且只有在运行 WSL 特定命令时才会出现,但我希望避免将来出现混乱。

我最终使用了LxRun离线复制我的 Distro,在此过程中,您可以命名重复项,将重复项设置为默认值,然后卸载我的旧 Distro。

我所做操作的示例(从我的用户主目录在 powershell 中运行):

#List installed Distros
LxRunOffline.exe l
#Duplicate Ubuntu-18.04 to folder in my user directory and name it Ubuntu
LxRunOffline.exe d -n Ubuntu-18.04 -d ./WSL/Ubuntu -N Ubuntu
#Set new Distro as default
LxRunOffline.exe sd -n Ubuntu
#Uninstall old Distro
LxRunOffline.exe ui -n Ubuntu-18.04

PS:需要明确的是,WSL 列出的 Distro 名称与 Distro 内部实际运行的内容无关。因此,您只需在 WSL2 convert 命令中使用 WSL 当前列出的当前名称即可。

相关内容