🦁

WSL2でWindowsのPATH設定が引き継がれるのを解除する

2021/05/24に公開

はじめに

私はLinuxのローカル環境にWSL2のubuntuを利用していますが、PATHを確認してみるとWindowsのファイルシステムがPATHに設定されていて気持ちよくなかったので解除しました。

具体的に言うと「mnt/c」がPATHに設定されています。WSL2からWindowsのファイルシステム「/mnt/c」にアクセスすると動作がとても遅いです。マシンスペックによっては例えばコマンドの補完だけで秒単位になる事が想像できるところです。

WSL2のubuntuで現在のPATH設定を確認する

echo $PATH
--
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
:/mnt/c/Program Files/WindowsApps/CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2021.222.0_x64__79rhkp1fndgsc
:/mnt/c/Windows/system32:/mnt/c/Windows
:/mnt/c/Windows/System32/Wbem
:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/
:/mnt/c/Windows/System32/OpenSSH/
:/mnt/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common
:/mnt/c/Program Files/NVIDIA Corporation/NVIDIA NvDLISR
:/mnt/c/Program Files/Microsoft VS Code/bin
:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem
:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/System32/OpenSSH/
...

WindowsのPATH設定が引き継がれています。(途中で割愛しています)

WindowsのPATHを引き継がないように設定を変更する

WSL2の設定変更は「/etc/wsl.conf」を変更します。
※wsl.confは初期に作成されていないので、ファイルが無かった場合は新規作成します。

sudo vi /etc/wsl.conf
--
# WindowsのPATHを引き継がない設定を追記する
[interop]
appendWindowsPath = false

コメントアウトは行頭に「#」を入れます。

WSL2の再起動はubuntuからは出来ない

PATHを適用するため再起動したいところですが、WSL2の再起動するためにubuntuでコマンドを実行してもエラーとなり再起動ができません。WSL2の再起動はWindowsのコマンドラインから実行する必要があります。(Windows自体を再起動するのもアリです)

「shutdown -r now」では再起動できず。

sudo shutdown -r now
--
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Failed to talk to init daemon.

「reboot」も再起動できませんでした。

sudo reboot
--
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Failed to talk to init daemon.

Windowsのコマンドプロンプトから再起動(停止→起動)を実行する

Widnowsコマンドプロンプト
--
wsl.exe --shutdown

コマンドでWSLが全てシャットダウンされますので、改めてubuntuを起動します。

起動後にWSL2(ubuntu)のPATHを確認する

echo $PATH
--
/usr/local/sbin:/usr/local/bin:/usr/sbin
:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

無事にWindowsのPATH設定が引き継がれない状態にすることができました。

最後に

WSL2は使いこなしていく程にクセもあると思いますが、XAMPPよりLINUXに近い環境だったりDockerも使えるのでローカル環境としてアリだと思います。まだ知らない事も多いですが使って慣れていこうと思います。

以上、「WSL2でWindowsのPATH設定が引き継がれるのを解除する」になります。

GitHubで編集を提案

Discussion