WSL2 を開くと、Windows ターミナルで「ファイルが既に存在する場合はファイルを作成できません」と表示されます。

WSL2 を開くと、Windows ターミナルで「ファイルが既に存在する場合はファイルを作成できません」と表示されます。

通常のユーザーとして Windows ターミナルで WSL2 用の Ubuntu を実行する際に問題が発生しています。

bash プロンプトが表示される代わりに、次のメッセージが表示されます。これは、同じ名前の Ubuntu ディストリビューションが複数あるためだと思います。以下を参照してください。

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 Wed Mar 2 00:30:59 UTC 2022

再現する手順:

  1. 管理者以外のアカウントとして Windows Terminal を開きます。

  2. 上部の下矢印タブをクリックし、Ubuntu を選択します。

  3. 次のエラー メッセージが表示された新しいタブが表示されます。

    ファイルが既に存在する場合はファイルを作成できません。

    [プロセスはコード 4294967295 (0xffffffff) で終了しました] Ctrl+D でこのターミナルを閉じるか、Enter キーを押して再起動することができます。

この問題は、Ubuntu という名前の Ubuntu ディストリビューションが 2 つあるが、レジストリ内の 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}

1 番目には値がありますが、2 番目には値がないことがわかります。

最初の1つ:

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

2番目

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 が 2 番目に設定されていることに気付きましたc329c2ee-fd20-4986-873a-351737eaf399:

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

{97307d71-8998-42a4-9600-ff372b6ec1ee}Window Terminal で開こうとしたときにエラー メッセージが表示されないように、デフォルトのディストリビューションを「1 番目」に変更しても安全ですか?

以下も参照: 参考:

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.

関連情報