【WSL2】systemdがサポートされたようなので試してみた

2022年11月19日Windows,環境構築

ここ数年は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を使えるので、より手軽に環境を使えるようになりました。

今回は、ここまで。

おわり

Posted by しきゆら