背景
WSL2でUbuntu環境を使うのですが、WindowsのホームディレクトリとUbuntuのホームディレクトリが異なっているため変更してみました。
設定後のイメージ
Windowsのホームディレクトリにubuntu
という名称のディレクトリを作成し、これをUbuntuのホームディレクトリとします。
xxxxをWindowsのユーザー名とすると下記がUbuntuのホームディレクトリになります。
C://Users/xxxx/ubuntu
設定方法
UbuntuからWindowsのホームディレクトリにアクセス
上記のCというドライブレターはWindows環境下での表現方法で、このパスをそのままUbuntuで指定してもエラーとなります。
UbuntuからWindowsのCドライブへアクセスするには下記のように指定します。
/mnt/c/
あとはWindowsと同じように
/mnt/c/Users/xxxx/ubuntu
と書けばUbuntuからWindowsのホームディレクトリにあるubuntu
フォルダにアクセスできます。
Ubuntuユーザーのホームディレクトリを変更する
UbuntuからWindowsのホームディレクトリにアクセスする方法がわかったので、Ubuntuユーザーのデフォルトホームディレクトリを変更します。
$sudo vi /etc/passwd
と入力して自分のアカウントの行を検索してください。
アカウント名がxxxxだとした場合は下記のように変更します。
xxxx:x:1000:1000:,,,:/mnt/c/Users/xxxx/ubuntu:/bin/bash
以上で次回にUbuntuへログインする場合はホームディレクトリがWindowsユーザーのホームディレクトリにあるubuntuというディレクトリに変更されているはずです。
chmodが使えるようにする
UbuntuからWindowsのホームディレクトリへアクセスできるようになったのですが、このままだとchmodなどのコマンドが利用できません。WSL2でWindowsファイルやフォルダのパーミッション変更を可能にするためには以下のように/etc/wsl.conf
に以下を記述します。
# Enable extra metadata options by default
[automount]
enabled= true
root= /mnt/
options= "metadata,umask=22,fmask=11"
mountFsTab= false
# Enable DNS – even though these are turned on by default, we'll specify here just to be explicit.
[network]
generateHosts= true
generateResolvConf= true
wsl.confを編集する際は sudo vi /etc/wsl.conf
のようにsudoをつけて編集してください。
その後PCを再起動するとchmodによるファイル変更が可能になります。