tropicbirdのブログ

備忘録です。

Bash on Windows (Ubuntu OS)(WSL)でrootfsディレクトリに入れない原因と解決策

1.WSLでJupyter Labを開こうとするエラーが発生したので、確認のため、WSL上でUbuntuOSにインストールしたAnacondaのある場所まで進もうとすると、rootfsフォルダの中に入れない現象が発生し、非常に悩んだ。
(base) root@DESKTOP-XXXXXXX:/mnt/c/Users/*WINDOWS_USERNAME/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState$ cd rootfs

bash: cd: rootfs: Permission denied

rootfsのパーミッションの状況を確認するとオーナーなのに入れない謎の状況であることが判明。

(base) root@DESKTOP-XXXXXXX:/mnt/c/Users/*WINDOWS_USERNAME/AppData/Local/Packages/CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc/LocalState$ ls -l

total 0
-rwxrwxrwx 1 tropicbird tropicbird    0 Oct 28 18:47 fsserver
d--------- 1 tropicbird tropicbird 4096 Jun 30 08:35 rootfs
drwxrwxrwx 1 tropicbird tropicbird 4096 Oct 28 18:47 temp

解決策を調べた結果、rootfsディレクトリ経由だとフォルダ検索に無限ループが発生することが原因であることが分かった。解決策はrootfsフォルダを経由せずにUbuntuOSのユーザーディレクトリに移動すればよいらしい。
※参考サイト↓
cannot access 'rootfs' on Ubuntu on Windows - Super User

3.WSL上でrootfs以降に進めない原因の解決策

コマンドプロンプトbashを開いた時に最初のディレクトリの場所は以下の場所になっている。

(base) tropicbird@DESKTOP-XXXXXXX:/mnt/c/Users/*WINDOWS_USERNAME$

このままだと、無限ループになる可能性があるので、LINUXコマンドのcd .. を使ってディレクトリの一番上まで移動する。

(base) tropicbird@DESKTOP-XXXXXXX:/$

ここで、cd home/*LINUX_USERNAMEを入力すると、ターミナルの表示が少し変化する。
(追記2019/11/2:cd ..でフォルダの一番上まで移動してcd home/*LINUX_USERNAMEを入力しなくても、どこからでもcd~を入力すれば、一発で仮想環境のhomeに一発で移動できる。)

(base) tropicbird@DESKTOP-XXXXXXX:~$

これで、rootfsディレクトリによるループ現象を発生させずに、UbuntuOS上でインストールしたソフトやフォルダにエラーなく、アクセスすることができる。

ちなみに、lsを使って当方のhome/*LINUX_USERNAME内を確認してみると、以下のような感じ。

(base) tropicbird@DESKTOP-XXXXXXX:~$ls
anaconda3  seaborn-data
4.cd home/*LINUX_USERNAMEからだとJupyter Labも問題なく開ける。

jupyter labと入力して、出てきたURLをブラウザで開くとエラーなく起動する。

(base) tropicbird@DESKTOP-XXXXXXX:~$ jupyter lab