作为普通用户,我无法在 Windows 终端中运行 Ubuntu for WSL2。
我没有得到 bash 提示符,而是得到了以下内容,我认为这是因为我有多个同名的 Ubuntu Distro,如下所示:
Windows 版本: Microsoft Windows [版本 10.0.19044.1586]
WSL 版本:0.0.0.0
你使用的是 WSL1 还是 WSL2:WSL2
内核版本:Linux 版本 5.10.102.1-microsoft-standard-WSL2 (oe-user@oe-host) (x86_64-msft-linux-gcc (GCC) 9.3.0,GNU ld (GNU Binutils) 2.34.0.20200220) #1 SMP 2022 年 3 月 2 日星期三 00:30:59 UTC
重现步骤:
以非管理员帐户打开 Windows 终端。
单击顶部的向下箭头选项卡并选择 Ubuntu。
出现一个新选项卡,其中包含以下错误消息:
当文件已存在时,无法创建文件。
[进程退出,代码为 4294967295(0xffffffff)] 您现在可以使用 Ctrl+D 关闭此终端,或按 Enter 重新启动。
我认为问题与以下事实有关:有两个名为 Ubuntu 的 Ubuntu 发行版,但在注册表中具有不同的 GUID/UUID:
wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
Ubuntu Stopped 2
PS C:\Users\me-user> reg query hkcu\software\microsoft\windows\currentversion\lxss
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss
DefaultVersion REG_DWORD 0x2
DefaultDistribution REG_SZ {c329c2ee-fd20-4986-873a-351737eaf399}
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\AppxInstallerCache
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\{97307d71-8998-42a4-9600-ff372b6ec1ee}
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\{c329c2ee-fd20-4986-873a-351737eaf399}
如果你注意到第一个有值,但是第二个没有:
第一:
PS C:\Users\me-user> reg query "hkcu\software\microsoft\windows\currentversion\lxss\{97307d71-8998-42a4-9600-ff372b6ec1ee}" /v DistributionName
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\{97307d71-8998-42a4-9600-ff372b6ec1ee}
DistributionName REG_SZ Ubuntu
PS C:\Users\me-user> reg query "hkcu\software\microsoft\windows\currentversion\lxss\{97307d71-8998-42a4-9600-ff372b6ec1ee}"
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\{97307d71-8998-42a4-9600-ff372b6ec1ee}
State REG_DWORD 0x1
DistributionName REG_SZ Ubuntu
Version REG_DWORD 0x2
BasePath REG_SZ C:\Users\me-user\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState
Flags REG_DWORD 0xf
DefaultUid REG_DWORD 0x0
PackageFamilyName REG_SZ CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
第二个
PS C:\Users\me-user> reg query "hkcu\software\microsoft\windows\currentversion\lxss\{c329c2ee-fd20-4986-873a-351737eaf399}" /v DistributionName
HKEY_CURRENT_USER\software\microsoft\windows\currentversion\lxss\{c329c2ee-fd20-4986-873a-351737eaf399}
DistributionName REG_SZ Ubuntu
(无其他键/值)
我注意到默认 wsl 设置为第二个c329c2ee-fd20-4986-873a-351737eaf399
:
DefaultDistribution REG_SZ {c329c2ee-fd20-4986-873a-351737eaf399}
将默认分布更改为“第一个”是否安全,{97307d71-8998-42a4-9600-ff372b6ec1ee}
以便在 Windows 终端中尝试打开它时不再看到错误消息?
另请参阅: https://github.com/microsoft/WSL/issues/7998
Cannot create a file when that file already exists.
[process exited with code 4294967295 (0xffffffff)]
You can now close this terminal with Ctrl+D, or press Enter to restart.