“Não é possível criar um arquivo quando esse arquivo já existe” no Terminal do Windows ao abrir o WSL2?

“Não é possível criar um arquivo quando esse arquivo já existe” no Terminal do Windows ao abrir o WSL2?

Estou tendo problemas para executar o Ubuntu para WSL2 no meu terminal Windows como usuário regular.

Em vez de receber um prompt do bash, recebo o seguinte, e acho que é porque tenho mais de uma distribuição Ubuntu com o mesmo nome, veja abaixo:

Versão do Windows: Microsoft Windows [versão 10.0.19044.1586]

Versão WSL:0.0.0.0

Você está usando WSL1 ou WSL2:WSL2

Versão do kernel:Linux versão 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 Qua Mar 2 00:30:59 UTC de 2022

Passos para reproduzir:

  1. Abra o Terminal do Windows como uma conta não administrativa.

  2. Clique na guia de seta para baixo na parte superior e selecione Ubuntu.

  3. Uma nova guia aparece com a seguinte mensagem de erro:

    Não é possível criar um arquivo quando esse arquivo já existe.

    [processo encerrado com código 4294967295 (0xffffffff)] Agora você pode fechar este terminal com Ctrl+D ou pressionar Enter para reiniciar.

Acho que o problema tem a ver com o fato de existirem duas distros Ubuntu chamadas Ubuntu, mas que possuem um GUID/UUID diferente no registro:

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}

Se você notar que o primeiro tem valores, mas o segundo não:

Primeiro:

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

(Sem outras chaves/valores)

Percebi que o wsl padrão está definido como o segundo c329c2ee-fd20-4986-873a-351737eaf399:

DefaultDistribution REG_SZ {c329c2ee-fd20-4986-873a-351737eaf399}

É seguro alterar a distribuição padrão para "a primeira" {97307d71-8998-42a4-9600-ff372b6ec1ee}para que eu não veja mais a mensagem de erro ao tentar abri-la no Windows Terminal?

Veja também: 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.

informação relacionada