備忘録やめた

備忘録として使用していたけどやめた.このブログに載せてあるコードのライセンスは別途記載がない限りWTFPL OR NYSLです.

WSLからGentooをインストールする

要約

WSLからGentooをインストールする際は、ハンドブックの指示に加え、以下2つを行う必要がありました。

  • あらかじめ、GentooをインストールするストレージをWSL上でマウントする必要がありました。
  • grub-installを実行する際は--removableオプションが必要でした。

はじめに

先日、デスクトップマシンのSSDを換装したついでにGentooを再インストールしました。この時は自宅にUSBメモリがなかったので、インストール済みのWindows上のWSLからGentooをインストールしました。

このときも基本的にハンドブックを参照しましたが、注意すべき点が2点あったため、この記事にまとめておきます。

前提

  • 環境はx86_64です。
  • マザーボードにはNVMe接続で2枚のSSDが接続されており、片方には既にWindows11がインストールされています。

注意すべき点

インストール先のストレージをWSLでマウントする

詳細は以下のQiita記事をご確認いただきたいのですが、通常のLinuxとは異なり、WSLでストレージを扱う際は、WSL自体にストレージをマウントする必要があります。

qiita.com

以下のスクリプトは、インストール先のSSDをWSLにマウントしたあと、パーティションディレクトリを/mnt/gentoo下にマウントし、chrootします。このスクリプトをWSLに置いておくと、何らかの理由でGentooを再び起動できなくなった際に便利です。PowershellSSDパーティションのパスは適宜変更してください。

#!/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をサポートしていません。

github.com

grub-installは通常efivarfsを必要とするため、WSL上で実行しようとするとエラーが出ます。これを回避するため、--removableオプションを付ける必要があります。

おわりに

以上、WSLからGentooをインストールする際に注意すべき点を解説しました。WSLはLiveUSBとは異なりストレージが永続的なため、上記のようなスクリプトを置くことができるなど、利点もあります。ぜひ試してみてください。