みねっちょのマイコン関係ブログ

組込開発系フリーソフトやハードの情報発信ブログ

【大失敗】WSL のホームディレクトリを C ドライブの直下に移動してリンクを張る

サイト内 Google 検索:


大問題発生:

下記の通り WSL のホームを Windowsエクスプローラーで移動したところ、WSL 上で作成した全てのファイルやディレクトリの属性が 777、つまり rwxrwxrwx となってしまう事が分かりました。恐らく、WSL で使用しているディレクトリでは、「プロパティのセキュリティ」が Windows 上の標準と異なるという事だと思います。下記の操作はやっては駄目です。

問題の詳細と復旧方法は【こちらの記事】を参照してください。

C: からジャンクションを張るだけにしておけば良かった orz

---------------

Windows 10 Professional の WSL のディレクトリは分かりずらい場所に有り、エクスプローラによるファイルの操作に不便です。本記事では、WSL のホームディレクトリを C ドライブの直下に移動し、かつ正常動作する様にリンクを張る方法を紹介します。

ホームディレクトリの場所:

Ubuntu 20.04 の場合、次の通りです。(実際には折り返されません)

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\%USERNAME%

ホームディレクトリを C ドライブの直下に移動し名前を変更する:

もし WSL が動いて居る場合には全て終了します。また、エクスプローラーやコマンド プロンプト等で移動するディレクトリを開いて居る場合にも全て閉じます。

上に記載した ”ユーザー名" のディレクトリを、Windowsエクスプローラーで切り取って、C:\ に貼り付けます。更に、その名前を "WSL_home" と変更します。

ジャンクションを張る:

コマンド プロンプト (いわゆる DOS 窓) を開き、移動したディレクトリの有った場所に cd コマンドで移動します。文字列は、エクスプローラーのアドレスバーを右クリックでコピーし、コマンド プロンプトに右クリックで貼り付けるのが楽でしょう。

f:id:minettyo:20210203163226p:plain

コマンド プロンプトで「MKLINK /J」 とコマンド打ってジャンクションを作成します。

cd C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home

mklink /j %USERNAME% C:\WSL_home

「"ユーザー名" <<===>> C:\WSL_home のジャンクションが作成されました」とメッセージが出れば成功です。

大問題が発生してしまった:

WSL を起動して、通常通りにホームディレクトリが見えれば完了です、、、と思ったら大間違い、大変な事態に発展していたのでした。

問題の詳細と復旧方法は【こちらの記事】を参照してください。


【WSL 関係の目次へ戻る】