Установка Grub не удалась

13

У меня была хорошая установка Debian Jessie, но я побежал apt-get update && apt-get upgrade && apt-get dist-upgrade.

А потом после перезагрузки он попал прямо в биос. Я понял, что Grub отсутствует, поэтому я запустил live 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.
Hunter.S.Thompson
источник
Точно такая же проблема здесь с ноутбуком ASUS.
Обин

Ответы:

33

Исправлены ошибки efibootmgr путем монтирования переменных Boot для 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

и все прошло успешно!

Hunter.S.Thompson
источник
1
Это работает для меня, за исключением того, что я должен был перезагрузка между шагом rm /sys/firmware/efi/efivars/dump-*и бегом grub-install.
Ник ODell
1

Попробуйте указать диск, содержащий загрузчик, если ваш диск не / dev / sda:

efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Ubuntu
panticz.de
источник
эта опция работала для моего, извините раньше sudo apt install efibootmgr, и создать, чтобы завершить загрузку, я должен удалить другие варианты загрузки.
Диего Меса
0

У меня была такая же проблема на Ubuntu с моей материнской платой Asus. Я не нашел ни одного файла дампа для удаления. Или что-нибудь большое, что было безопасно удалить.

Я смог решить проблему, перезагрузив систему с efi_no_storage_paranoiaопцией командной строки ядра. Я уже потерял загрузочную запись Ubuntu UEFI. К счастью, я все еще мог загрузиться с моего раздела Ubuntu, выбрав загрузочный выбор в настройках BIOS. После этого я использовал клавишу «e» в меню grub, чтобы добавить эту опцию в командную строку ядра. Затем я смог завершить свое ранее неудачное обновление системы, запустив apt -f install.

Если система не загружается, одним из вариантов является загрузка с USB-накопителя Ubuntu и устранение проблемы оттуда.

Если проблема появится позже, я рассмотрю возможность добавления этой опции ядра в /etc/default/grub.

Ядро очень параноидально относится к заполнению пространства переменных UEFI. Он сообщает, что он заполнен, даже если осталось место. Это сделано специально для предотвращения постоянного заполнения пространства на некоторых материнских платах. Я подозреваю, что с моей материнской платой это может быть слишком параноидально. Возможно, BIOS не запускает сборку мусора, если пространство не становится более полным.

Ранее мне удавалось восстанавливаться из той же ситуации с помощью заголовка «Clear CMOS» на моей материнской плате. Хорошо, чтобы найти программное решение.

щелчок
источник