GRUB で EFI への登録に失敗したら…
昨日、久々に起動した Windows 10 で 1803 のアップデートが来ていた。 サブで使っている別の Note PC では問題なかったのでこちらにも適用したら、なんとメインで使っている Linux が起動しなくなった。レスキュー用に作成していた USB スティックから Linux を boot させて GRUB を再設定し、 EFI の再登録をしようとしても以下のようなエラーが出て失敗してしまう。
error: efibootmgr failed to register the boot entry: Input/output error.
実は以前から efibootmgr
がエラーする現象は出ており、恐らくは SSD への Windows 10 インストールでハマる で書いたように SDD と HDD の両方の EFI 情報が登録されていたせいだろう (それなりに古い BIOS だから EFI に登録できる情報に限りがあるのだろう) と考えていた。今回は Linux が全く起動できない状態に陥っているのでマジメに調べてみると、原因はもっと単純だった。
※ Secure Boot 関連でハマった場合には こちら を参照
参考になったのは Grub installation failed のサイト。
Debian stretch だとデフォルトで /sys/firmware/efi/efivars
は mount されているので、この中を見てみる。
# ls /sys/firmware/efi/efivars/
...
dump-type0-XX-X-XXXXXXXXXX-X-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
...
dump-type0-XX-X-XXXXXXXXXX-X-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
大量に dump-type0-*
のエントリがある。
どうもこの dump-*
に過去の crash の情報が蓄積されるらしい。この結果、 EFI NVRAM がフルになって新たな設定ができなくなっていた。
単純にこの dump-*
エントリを削除し、 grub の再設定をしてやればうまくいった。
ついでに、以前うまくいかなくなっていた refind
も再インストールし、メインの Boot Manager は refind
に変更した。
# rm /sys/firmware/efi/efivars/dump-*
# dpkg-reconfigure grub-efi-amd64
# apt-get install refind
これでここしばらく悩んでいた問題が一つ解決した。
« NFSv4 + Kerberos 環境構築 | トップページ | Thunderbird 60 で動くお薦め add-on »
「Linux」カテゴリの記事
- Debian Linux を Secure Boot 環境で使う(2023.03.06)
- コンテナで GUI / GPU を使う(2022.10.19)
- 仮想環境のイメージ格納場所の移動(2022.09.10)
- Kodi の設定(2019.12.02)
- メインマシンを AMD Ryzen 5 2400G に(2019.06.24)
« NFSv4 + Kerberos 環境構築 | トップページ | Thunderbird 60 で動くお薦め add-on »
コメント