vmlinuz linux not found が発生した
2017-10-18
急に訪れた 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 を入れてみた。自分で書いてもいいらしいけど、こっちのほうが楽。
教訓
外部メディアからブートできる手段があるの大事