急に訪れた OS が起動しない問題… systemd-boot で Arch Linux を選択すると、vmlinuz-linux not found って言われて起動しない…

何が起こっているか確認する

中がどうなっているかみえないと話にならないので、USB メモリ等外部から起動できるメディアを使って起動する。私は Arch Linux インストールしたときに使ったイメージをそのまま利用した。 メディアから boot させて、/ パーティションと /boot パーティションを /mnt/mnt/boot に mount して arch-chroot してみた。

mount した時点でわかるのであるが、/boot/vmlinuz-linux がいない…

vmlinuz-linux をつくる

https://bbs.archlinux.org/viewtopic.php?pid=1654261#p1654261 にあるとおり、pacman -S linux したった。無事 /boot/vmlinuz-linux が作成された。

なぜ消えたのかはわかっていない… 再起動したのも久しぶりだったしわからぬ… linux アップデード時に失敗した?

ついでに

ArchWiki 英語版の systemd-boot を見ていたら、 systemd-boot がアップデートされたら、bootctl update って手動で更新する必要があるとか書いてある。もちろん、手動とか忘れるんで自動で pacman hook を使って更新するようにしてみた。

Automatically にあるように、systemd-boot-pacman-hook を入れてみた。自分で書いてもいいらしいけど、こっちのほうが楽。

教訓

外部メディアからブートできる手段があるの大事 :exclamation: