WSLからGentooをインストールする
要約
WSLからGentooをインストールする際は、ハンドブックの指示に加え、以下2つを行う必要がありました。
- あらかじめ、GentooをインストールするストレージをWSL上でマウントする必要がありました。
grub-installを実行する際は--removableオプションが必要でした。
はじめに
先日、デスクトップマシンのSSDを換装したついでにGentooを再インストールしました。この時は自宅にUSBメモリがなかったので、インストール済みのWindows上のWSLからGentooをインストールしました。
このときも基本的にハンドブックを参照しましたが、注意すべき点が2点あったため、この記事にまとめておきます。
前提
注意すべき点
インストール先のストレージをWSLでマウントする
詳細は以下のQiita記事をご確認いただきたいのですが、通常のLinuxとは異なり、WSLでストレージを扱う際は、WSL自体にストレージをマウントする必要があります。
以下のスクリプトは、インストール先のSSDをWSLにマウントしたあと、パーティションやディレクトリを/mnt/gentoo下にマウントし、chrootします。このスクリプトをWSLに置いておくと、何らかの理由でGentooを再び起動できなくなった際に便利です。PowershellやSSD、パーティションのパスは適宜変更してください。
#!/bin/bash /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -Command 'sudo wsl.exe --mount \\.\PHYSICALDRIVE0' sudo mount /dev/sdd3 /mnt/gentoo sudo mount /dev/sdd1 /mnt/gentoo/efi sudo swapon /dev/sdd2 sudo cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ sudo mount --types proc /proc /mnt/gentoo/proc sudo mount --rbind /sys /mnt/gentoo/sys sudo mount --make-rslave /mnt/gentoo/sys sudo mount --rbind /dev /mnt/gentoo/dev sudo mount --make-rslave /mnt/gentoo/dev sudo mount --bind /run /mnt/gentoo/run sudo mount --make-slave /mnt/gentoo/run sudo chroot /mnt/gentoo /bin/bash
grub-installは--removable付きで実行する
WSLはefivarfsをサポートしていません。
grub-installは通常efivarfsを必要とするため、WSL上で実行しようとするとエラーが出ます。これを回避するため、--removableオプションを付ける必要があります。
おわりに
以上、WSLからGentooをインストールする際に注意すべき点を解説しました。WSLはLiveUSBとは異なりストレージが永続的なため、上記のようなスクリプトを置くことができるなど、利点もあります。ぜひ試してみてください。