web-dev-qa-db-fra.com

L'installation de Grub a échoué

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

Et puis après le redémarrage, il est venu directement au BIOS. J'ai réalisé que Grub manquait, alors j'ai lancé 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 alors 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 mon /boot/efi cloison?

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

efibootmgr n'affiche 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 à l'aide de 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.
13
Hunter.S.Thompson

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

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

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

Could not prepare Boot variable: No space left on device

Correction de 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é!

33
Hunter.S.Thompson

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
0
panticz.de

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 efi_no_storage_paranoia Option 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 la mise à niveau du système qui avait précédemment échoué 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.

0
snap