【WSL2】systemdがサポートされたようなので試してみた
ここ数年はWindowsの環境をクリーンインストールするたびにWSL2の環境を作り直し、その度にgenieを使ってsystemdをPID 1 にするための方法をメモしてきました。
しかし、気が付いたらWSL自体がsystemdをサポートしたようなので、WSLだけでsystemdをPID 1にしてみたのでメモしておきます。
詳しいことは公式ブログを参照ください。
設定方法等は続きからどうぞ。
設定手順
公式ブログによると、WSLのバージョンが0.67.6以上で使えるとのこと。 なお、手元のWSLのバージョンを確認するとすでに1.0になっていたのでだいぶ前から使えたんだなぁともっと早く気づきたかった気持ちでいっぱいです。 確認するためのコマンドは以下の通り。
powershell > wsl --version
WSL バージョン: 1.0.0.0
カーネル バージョン: 5.15.74.2
WSLg バージョン: 1.0.47
MSRDC バージョン: 1.2.3575
Direct3D バージョン: 1.606.4
DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windowsバージョン: 10.0.22621.819
なお、WSLの更新もwslコマンドでできるようになったようなので、バージョンが古い場合は以下のコマンドで更新すればよい。
powershell > wsl --update
次に、WSL環境にwsl.confというファイルを作成し、以下を書き込みます。
wsl(Ubuntu) > sudo emacs /etc/wsl.conf
# 以下を追記
[boot]
systemd=true
書き込んだらWSL環境を再起動。 これにて準備完了です。
powershell > wsl --shutdown
この後、WSL環境に入りsystemctlを動かしてみます。 以下のようにエラーが起きずにつらつら表示されたらOK。
wsl(Ubuntu) > systemctl
UNIT LOAD ACTIVE SUB DESCRIPTION >
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-0fd20160\\x2d7ac7\\x2d4158\\x2d9e38\\x2d8685d280c3a6-net-eth0.device loaded active plugged /sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:>
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-ba31a026\\x2d5b46\\x2d4a8d\\x2da6dc\\x2df00324cf1e90-pci5b46:00-5b46:00:00.0-virtio0-virtio\\x2dports-vport0p0.device loaded active plugged /sys/devices/LNXSYSTM:00/LNXSYBUS:00/ACPI0004:00/VMBUS:>
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\\x2dce7c\\x2d535c\\x2d966b\\x2deb5f811c95f0-host0-target0:0:0-0:0:0:0-block-sda.device loaded active plugged Virtual_Disk
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\\x2dce7c\\x2d535c\\x2d966b\\x2deb5f811c95f0-host0-target0:0:0-0:0:0:1-block-sdb.device loaded active plugged Virtual_Disk
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\\x2dce7c\\x2d535c\\x2d966b\\x2deb5f811c95f0-host0-target0:0:0-0:0:0:2-block-sdc.device loaded active plugged Virtual_Disk
sys-devices-platform-serial8250-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS0
sys-devices-platform-serial8250-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS1
sys-devices-platform-serial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2
sys-devices-platform-serial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3
...
まとめ
今回は、WSLがsystemdをサポートしたということで設定してみました。
今後はgenieを入れずともWSLだけでsystemdを使えるので、より手軽に環境を使えるようになりました。
今回は、ここまで。
おわり