はじめに
WSL(WSL2)を使おうとしたところ、以下のエラーが発生してWSLを起動できませんでした。
見慣れないエラーだったので当初は何が原因か全く分からずちょっと焦ったので、対処方法を記事としてまとめることにしました。
WSL起動時のエラーメッセージ
PS C:\Users\NKOJIMA> wsl
<3>WSL (15) ERROR: CreateProcessParseCommon:711: Failed to translate C:\Users\NKOJIMA
<3>WSL (15) ERROR: CreateProcessParseCommon:757: getpwuid(0) failed 2
<3>WSL (15) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Amazon Corretto\jdk11.0.11_9\bin
<3>WSL (15) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Common Files\Oracle\Java\javapath
<3>WSL (15) ERROR: UtilTranslatePathList:2866: Failed to translate C:\Program Files\Amazon Corretto\jdk1.8.0_265\bin
<3>WSL (15) ERROR: UtilTranslatePathList:2866: Failed to translate C:\WINDOWS\system32
<3>WSL (15) ERROR: UtilTranslatePathList:2866: Failed to translate C:\WINDOWS
...
Processing fstab with mount -a failed.
Failed to mount C:\, see dmesg for more details.
Failed to mount D:\, see dmesg for more details.
Failed to mount C:\, see dmesg for more details.
Failed to mount D:\, see dmesg for more details.
<3>WSL (15) ERROR: CreateProcessEntryCommon:334: getpwuid(0) failed 2
<3>WSL (15) ERROR: CreateProcessEntryCommon:505: execvpe /bin/sh failed 2
<3>WSL (15) ERROR: CreateProcessEntryCommon:508: Create process not expected to return
解決の糸口
- 「UtilTranslatePathList」というキーワードで検索してみたところ、WSL2が起動できなくて困った話に書かれていた方法で解決できました。
- その前にこちらの記事を参考にしてWSLを無効化→有効化と切り替えてみたものの、今回は問題を解決できませんでした。
解決方法
-
wsl --list
を実行して「WSLで使用可能なディストリビューションの一覧」を表示すると、Docker Desktopが規定のプログラムになっていることが分かりました。
PS C:\Users\NKOJIMA> wsl --list
Linux 用 Windows サブシステム ディストリビューション:
docker-desktop-data (既定)
Ubuntu
docker-desktop
- そこで、
wsl --setdefault Ubuntu
を実行して規定のプログラムをUbuntuに変更します。
PS C:\Users\NKOJIMA> wsl --setdefault Ubuntu
この操作を正しく終了しました。
- 規定のプログラムをUbuntuに切り替えると、以下のように正常にWSLを起動することが出来ました。
PS C:\Users\NKOJIMA> wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
nkojima@NKOJIMA-DESKTOP:/mnt/c/Users/NKOJIMA$
エラーが発生した原因
- 今回のケースではDockerDesktopが規定のプログラムになっていたので、DockerDesktopをインストールしなければエラーが発生しなかったと思いますが、そもそも規定のプログラムが切り替わってしまった理由は分かりませんでした。