La instalación de Grub falló

13

Tuve una buena instalación de Debian Jessie, pero luego corrí apt-get update && apt-get upgrade && apt-get dist-upgrade.

Y luego, después de reiniciar, llegó directamente al BIOS. Me di cuenta de que faltaba Grub, así que ejecuté un CD en vivo e ingresé Rescue mode, monté mi partición raíz, + la partición de arranque y ejecuté estos comandos:

Grub encuentra la imagen de 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

Y luego 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

¿Hice algo mal? ¿Hay muy poco espacio en mi /boot/efipartición?

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

efibootmgr no muestra una instalación de Debian:

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

Editar:

Sigo recibiendo este error cada vez que intento crear un cargador de arranque usando 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
fuente
Exactamente el mismo problema aquí con la computadora portátil ASUS.
Aubin

Respuestas:

33

Se corrigieron los errores de efibootmgr montando las variables de arranque para efibootmgr:

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

Y luego efibootmgrme dio errores sobre el espacio:

Could not prepare Boot variable: No space left on device

Se corrigió eso eliminando archivos de volcado:

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

Y luego corrió lo de siempre

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

y funcionó con éxito!

Hunter.S.Thompson
fuente
1
Esto funcionó para mí, excepto que también tuve que reiniciar entre el paso rm /sys/firmware/efi/efivars/dump-*y la ejecución grub-install.
Nick ODell el
0

Tuve el mismo problema en Ubuntu con mi placa base Asus. No encontré ningún archivo de volcado para eliminar. O cualquier cosa grande que se sintiera segura de eliminar.

Pude solucionar el problema reiniciando el sistema con la efi_no_storage_paranoiaopción de línea de comando del kernel. Ya había perdido la entrada de arranque Ubuntu UEFI. Afortunadamente, aún podría iniciar mi partición de Ubuntu yendo a la selección de inicio en la configuración del BIOS. Después de eso, usé la tecla "e" en el menú de grub para agregar esa opción a la línea de comando del núcleo. Luego pude finalizar mi actualización del sistema que falló anteriormente mediante la ejecución apt -f install.

Si el sistema está en estado no arrancable, una opción es arrancar desde una memoria USB de Ubuntu y solucionar el problema desde allí.

Si el problema reaparece más adelante, consideraré agregar esa opción del kernel permanentemente /etc/default/grub.

El núcleo es muy paranoico acerca de llenar el espacio variable UEFI. Informa que está lleno incluso si queda espacio. Esto es intencional para evitar llenar permanentemente el espacio en algunas placas base. Sospecho que con mi placa base esto podría ser demasiado paranoico. Quizás el BIOS no inicie la recolección de basura a menos que el espacio se llene más.

Anteriormente pude recuperarme de la misma situación usando el encabezado "Clear CMOS" en mi placa base. Es bueno encontrar una solución de software.

chasquido
fuente
0

Intente especificar el disco que contiene el cargador si su disco no es / dev / sda:

efibootmgr --create --disk /dev/nvme0n1 --part 1 --label Ubuntu
panticz.de
fuente