GRUBのインストールに失敗しました


13

Debian Jessieの実行中のインストールは良好でしたが、その後実行しましたapt-get update && apt-get upgrade && apt-get dist-upgrade

そして、再起動後、それは直接BIOSに来ました。Grubが欠落していることに気づいたので、ライブCDを実行してRescue mode、自分のルートパーティションをマウントし、+ブートパーティションをマウントして、次のコマンドを実行しました。

GrubはLinuxイメージを見つけます。

root@debian:~# update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-4.9.0-3-amd64
Found initrd image: /boot/initrd.img-4.9.0-3-amd64
Found linux image: /boot/vmlinuz-4.9.0-0.bpo.3-amd64
Found initrd image: /boot/initrd.img-4.9.0-0.bpo.3-amd64
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
Found Ubuntu 16.10 (16.10) on /dev/sdb2
Adding boot menu entry for EFI firmware configuration
done

そしてgrub-install

root@debian:~# grub-install /dev/sda
Installing for x86_64-efi platform.
Could not prepare Boot variable: No such file or directory
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

lsblk

root@debian:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 223.6G  0 disk 
├─sda1   8:1    0  92.6G  0 part /
├─sda2   8:2    0 130.4G  0 part 
└─sda3   8:3    0   573M  0 part /boot/efi

私は何か間違ったことをしましたか?/boot/efiパーティションにスペースが少なすぎませんか?

root@debian:~# ls -l /boot/efi/EFI/debian/
total 120
-rwx------ 1 root root 121856 Jul 20 20:29 grubx64.efi

efibootmgr Debianのインストールは表示されません。

root@debian:~# efibootmgr --verbose | grep debian

編集:

を使用してブートローダーを作成しようとするたびに、このエラーが発生し続けますefibootmgr

grub-install: info: executing efibootmgr -c -d /dev/sda -p 3 -w -L grub -l \EFI\grub\grubx64.efi.
Could not prepare Boot variable: No such file or directory
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

ここでASUSラップトップとまったく同じ問題。
Aubin '26

回答:


33

のブート変数をマウントすることにより、efibootmgrエラーを修正しましたefibootmgr

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

そして、efibootmgrスペースに関するエラーを私に与えました:

Could not prepare Boot variable: No space left on device

ダンプファイルを削除することで修正:

# rm /sys/firmware/efi/efivars/dump-*

そしていつも通り走った

update-grub 
grub-install -v --target=x86_64-efi --recheck /dev/sda

正常に実行されました!


1
これは私にとってはうまくいきましたが、ステップrm /sys/firmware/efi/efivars/dump-*と実行の間に再起動する必要がありましたgrub-install
Nick ODell

0

私のAsusマザーボードのUbuntuでも同じ問題が発生しました。削除するダンプファイルが見つかりませんでした。または、削除しても安全だと思われる大きなもの。

efi_no_storage_paranoiaカーネルコマンドラインオプションを使用してシステムを再起動することで、問題を解決できました。私はすでにUbuntu UEFIブートエントリを失っていました。幸いにも、BIOS設定の選択項目を起動することで、Ubuntuパーティションを起動できます。その後、grubメニューの「e」キーを使用して、そのオプションをカーネルコマンドラインに追加しました。それから私は実行して、私の以前に失敗したシステムのアップグレードを完了することができましたapt -f install

システムが起動できない状態の場合、1つのオプションはUbuntu USBスティックから起動し、そこから問題を修正することです。

問題が後で再発する場合は、カーネルオプションをに永続的に追加することを検討します/etc/default/grub

カーネルは、UEFI変数空間をいっぱいにすることに非常に偏執的です。空きがあっても満杯だと報告します。これは、一部のマザーボードのスペースが完全にいっぱいになるのを防ぐためのものです。私のマザーボードではこれは偏執的すぎるかもしれないと思います。スペースがいっぱいにならない限り、BIOSがガベージコレクションを開始しない可能性があります。

以前は、マザーボードの「Clear CMOS」ヘッダーを使用して同じ状況から回復できました。ソフトウェアソリューションを見つけるのに適しています。


0

ディスクが/ dev / sdaでない場合は、ローダーを含むディスクを指定してください。

efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Ubuntu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.