生きることは忘れること

さくらのVPSにArch Linuxをインストールした

これは愚かな日記です。

環境再構築衝動が発生したため、さくらのVPSにArch Linuxをインストールしました。基本的にはインストールガイド - ArchWikiArch Linux — さくらの VPS マニュアルを読んでやるだけです。

「OS再インストール」ボタンはISOイメージでブートするボタンである

さくらのVPSのコントロールパネルには「OS再インストール」というボタンがあって、「標準OS」と「ISOイメージ」が選べるのですが、「ISOイメージ」を選んだ場合は押すだけでOSがインストールされるわけではなくISOイメージでブートされるだけです。つまり勝手にOSがインストールされるわけではなく自分の手でストレージを吹っ飛ばしてインストールしてやる必要があります。いや、ちょっと考えればそれはそうなんだけれども、ボタンの名前から直感を得にくかったという話。

起動はBIOS

さくらのVPSマニュアルに従って進めるとストレージはGPTでパーティショニングすることになるのですが、私にはさくらのVPSでUEFIブートする方法が見つけられませんでした。いや、正確にはISOイメージは自分で用意せずにさくら側が一部OSについて勝手に用意してくれているものを使ったので、そこで小細工できる可能性はゼロではないですが、まあそういう話ではなさそうな気がします。

問題になるのは最後にGRUBを入れるところです。ArchWikiでUEFIの手順を読んで grub-install --target=x86_64-efi --efi-directory=/efi とやると

EFI variables are not supported on this system.
grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.

と言われて上手くいかないです。これを走らせている環境(=ISOイメージでブートした環境)がUEFIブートではないからのようです。ちなみに --removable をつけるとエラーなく実行できますが、起動時にGRUBが見つからず Booting from Hard Disk で止まります(ブートエントリに書き込めていないせいだろうと思ってここに載っている efibootmgr --create を叩いてみるのもやりましたが、これもUEFIでない環境からはダメでした。それはそう)。ブートプロセスなんもわからん。

というわけで諦めてGPTとBIOSの構成でやります(微妙な気持ちにはなるのですが流石に令和の世にMBRを使う気にもなれない)。で、さくらのVPSマニュアルにはちゃんと grub-install --target=i386-pc /dev/vda を叩けというBIOSな手順が書いてあります。しかし、そのためにはBIOS boot partitionというものが必要なのですが、その前のパーティショニングの手順でそういう作業はしていないので、エラーになります。 --force をつければいいのかもしれませんが(試してない)、正攻法としてはGPT HDD に grub2 をインストールする際の tips — MIRACLE LINUX サポート&テクノロジー | サイバートラスト株式会社に書いてあることをやればいいはずです。

LVM

よほどのことがない限りパーティションを細かく切る必要はないと思うのですが、( /boot と) /var/log くらいは切っておいた方が安全かなという気持ちになり、あとからサイズを調整できることに惹かれてrootパーティションをLVMにしました。結果、火傷しました。

話としてはInstallation with LVM & GRUB, Error root device not found whe [SOLVED]/ Newbie Corner / Arch Linux Forumsで尽きていて、ブート時にLVMをマウントできるようにmkinitcpioとgrubの設定をちゃんと書いてあげればいいだけだったのですが、嵌まって3回くらい再起動が増える羽目になりました(再起動するたびにマウントし直しなのでとても面倒)。しかもArchWikiのここここにちゃんと書いてあるのでぐうの音も出ない。

その他

インストールガイドを逸脱したことのメモ書きとして:パーティションにラベルを付けました。永続的なブロックデバイスの命名 - ArchWikiです。その上で genfstab-U ではなく -L を渡してあげるとfstabの記述がUUIDではなくラベルで指定されたものになります。