У меня была хорошая установка 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.
Ответы:
Исправлены ошибки efibootmgr путем монтирования переменных Boot для
efibootmgr
:А потом
efibootmgr
дал мне ошибки о космосе:Исправлено это путем удаления файлов дампа:
А потом побежал как обычно
и все прошло успешно!
источник
rm /sys/firmware/efi/efivars/dump-*
и бегомgrub-install
.Попробуйте указать диск, содержащий загрузчик, если ваш диск не / dev / sda:
источник
sudo apt install efibootmgr
, и создать, чтобы завершить загрузку, я должен удалить другие варианты загрузки.У меня была такая же проблема на Ubuntu с моей материнской платой Asus. Я не нашел ни одного файла дампа для удаления. Или что-нибудь большое, что было безопасно удалить.
Я смог решить проблему, перезагрузив систему с
efi_no_storage_paranoia
опцией командной строки ядра. Я уже потерял загрузочную запись Ubuntu UEFI. К счастью, я все еще мог загрузиться с моего раздела Ubuntu, выбрав загрузочный выбор в настройках BIOS. После этого я использовал клавишу «e» в меню grub, чтобы добавить эту опцию в командную строку ядра. Затем я смог завершить свое ранее неудачное обновление системы, запустивapt -f install
.Если система не загружается, одним из вариантов является загрузка с USB-накопителя Ubuntu и устранение проблемы оттуда.
Если проблема появится позже, я рассмотрю возможность добавления этой опции ядра в
/etc/default/grub
.Ядро очень параноидально относится к заполнению пространства переменных UEFI. Он сообщает, что он заполнен, даже если осталось место. Это сделано специально для предотвращения постоянного заполнения пространства на некоторых материнских платах. Я подозреваю, что с моей материнской платой это может быть слишком параноидально. Возможно, BIOS не запускает сборку мусора, если пространство не становится более полным.
Ранее мне удавалось восстанавливаться из той же ситуации с помощью заголовка «Clear CMOS» на моей материнской плате. Хорошо, чтобы найти программное решение.
источник