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

Cae*_*das 7 windows-subsystem-for-linux ubuntu-18.04

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

Exporting the distribution failed.
bsdtar: Write error
Run Code Online (Sandbox Code Playgroud)

错误。我希望将名称更新为实际发行版 (19.04) 将解决此问题。关于如何做到这一点的任何想法?可能它在 WSL 的一些配置文件中?

小智 26

如果您想重命名 WSL 发行版,您必须:

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


NYC*_*yes 10

(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 [...]都需要进行编辑。


jap*_*one 4

我自己刚刚遇到了这个。虽然它基本上只是装饰性的,并且仅在运行 WSL 特定命令时才会出现,但我希望防止将来出现混乱。

我最终使用LxRunOffline复制我的发行版,在此过程中允许您命名副本,将副本设置为默认值,然后卸载我的旧发行版。

我所做的示例(从我的用户主目录在 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
Run Code Online (Sandbox Code Playgroud)

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