WSL起動時のマウントとネットワーク設定を自動化する機能

Microsoftは「Automatically Configuring WSL」において、Windows Insider Build 17093からWSL (Windows Subsystem for Linux)に、WSL起動時におけるマウントオプションおよびネットワーク設定を指定するための/etc/wsl.confファイル機能を追加したと説明した。このファイルが存在する場合、WSLは指定されている設定に従ってマウント処理およびネットワーク設定を実施するとされている。

WSLでは「DrvFs」と呼ばれるファイルシステムを通じてLinuxカーネルからWindows側のファイルシステムを扱えるようにしている。現在この部分の開発が進められており、マウント時にこれまでにないオプションが指定できるようになるが、こうした機能を利用するには一旦マウントを解除してから、オプションを指定してもう一度マウントする必要がある。/etc/wsl.confが利用できるようになると、こうした処理を起動時に自動化することができる。

/etc/wsl.confファイルのサンプル

現在公開されているWindows 10 Fall Creators Updateに搭載されているWSLでは、起動時の処理やスケジュールを指定して実行する処理の自由度がそれほど高くない。現在開発されている機能が取り込まれると、この辺りの機能が強化されることになる。

/etc/wsl.confの書き方

/etc/wsl.confファイルはINIファイル形式になっており、セクションと値の設定で成り立っている。/etc/wsl.conf機能が発表された時点ではオートマウントセクションとネットワークセクションの2つが用意されており、ここでマウント時のオプションやネットワーク設定時のオプションが指定できるようになっている。

紹介されている主な設定内容は次のとおり。

項目 デフォルト値 内容
enabled true CドライブやDドライブなど固定のドライブを/mnt以下にDrvFsとしてマウントする
mountFsTab true /etc/fstabに記述されているファイルシステムのマウント処理をWSL起動時に実施する
root /mnt/ マウント先を指定する
options カンマ区切りでDrvFsのマウントオプションを指定。デフォルトではuid=1000,gid=1000のようにユーザーIDとグループIDをユーザのものに設定するオプションが指定されている
項目 デフォルト値 内容
generateHosts true WSLが/etc/hostsを生成する
generateResolvConf true WSLが/etc/resolv.confを生成する

Linux側で行う設定は、これまでと同じように/etc/以下の設定ファイルなどに記述する。/etc/wsl.confで行う設定は、あくまでもWSL起動時にWSLに関連した部分の設定の自動化を指定するというもの。/etc/wsl.confを使うことでデフォルト以外のマウントをさせたいとか、hostsやresolv.confをスタティックに書いた状態で使いたいといった場合に利用できる。

現在のMicrosoftの開発状況を考えると、WSLに関する機能改善は今後もさまざまなものが取り込まれそうだ。どんどん便利になっていっており、今後の動向からは目が離せない。