L'installation de Grub a échoué

13

J'ai eu une bonne installation de Debian Jessie, mais j'ai ensuite couru apt-get update && apt-get upgrade && apt-get dist-upgrade.

Et puis après le redémarrage, il est venu directement au BIOS. Je me suis rendu compte que Grub manquait, alors j'ai exécuté un cd live et entré Rescue mode, monté ma partition racine, + la partition de démarrage et exécuté ces commandes:

Grub trouve l'image 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

Et puis 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

Est-ce que j'ai fait quelque chose de mal? Y a-t-il trop peu d'espace sur ma /boot/efipartition?

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

efibootmgr ne montre pas d'installation Debian:

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

Éditer :

Je reçois cette erreur chaque fois que j'essaie de créer un chargeur de démarrage en utilisant 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
la source
Exactement le même problème ici avec un ordinateur portable ASUS.
Aubin

Réponses:

33

Correction des erreurs efibootmgr en montant les variables de démarrage pour efibootmgr:

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

Et puis efibootmgrm'a donné des erreurs sur l'espace:

Could not prepare Boot variable: No space left on device

Corrigé cela en supprimant les fichiers de vidage:

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

Et puis a couru l'habituel

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

et ça s'est bien passé!

Hunter.S.Thompson
la source
1
Cela a fonctionné pour moi, sauf que j'ai également dû redémarrer entre l'étape rm /sys/firmware/efi/efivars/dump-*et la course grub-install.
Nick ODell
0

J'ai eu le même problème sur Ubuntu avec ma carte mère Asus. Je n'ai trouvé aucun fichier de vidage à supprimer. Ou tout ce qui peut être supprimé en toute sécurité.

J'ai pu résoudre le problème en redémarrant le système avec l' efi_no_storage_paranoiaoption de ligne de commande du noyau. J'avais déjà perdu l'entrée de démarrage Ubuntu UEFI. Heureusement, je pouvais toujours démarrer sur ma partition Ubuntu en allant à la sélection de démarrage dans les paramètres du BIOS. Après cela, j'ai utilisé la touche "e" dans le menu grub pour ajouter cette option à la ligne de commande du noyau. Ensuite, j'ai pu terminer ma mise à niveau du système précédemment échouée en exécutant apt -f install.

Si le système est dans un état non amorçable, une option consiste à démarrer à partir de la clé USB Ubuntu et à résoudre le problème à partir de là.

Si le problème réapparaît plus tard, j'envisagerai d'ajouter définitivement cette option de noyau dans /etc/default/grub.

Le noyau est très paranoïaque quant au remplissage de l'espace variable UEFI. Il signale qu'il est plein même s'il reste de l'espace. Ceci est intentionnel pour éviter de remplir définitivement l'espace sur certaines cartes mères. Je soupçonne qu'avec ma carte mère, cela pourrait être trop paranoïaque. Peut-être que le BIOS ne démarre pas la récupération de place à moins que l'espace ne soit plus plein.

Auparavant, je pouvais récupérer de la même situation en utilisant l'en-tête "Clear CMOS" sur ma carte mère. Bon pour trouver une solution logicielle.

casser
la source
0

Essayez de spécifier le disque contenant le chargeur si votre disque n'est pas / dev / sda:

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