2012-01-09 16:37:51 +0000 2012-01-09 16:37:51 +0000
56
56

Comment réinstaller GRUB2 EFI ?

Après avoir réussi à mettre à jour ma biographie, quelque chose a mal tourné et je me suis retrouvé avec un curseur clignotant dans le coin supérieur gauche d'un écran noir. Pas d'erreur, rien. Le bios n'indiquait plus qu'une option de démarrage SATA: <disc name> au lieu de l'habituelle UEFI ubuntu. J'utilise un schéma de partitionnement GPT.

J'ai finalement trouvé que la solution de travail était de réinstaller correctement grub-efi-amd64. Alors, comment faire  ?

PS : En fait, j'ai réussi à réinstaller GRUB2 EFI par moi-même et je vais poster ma réponse ici car je n'ai pas pu trouver de guide complet sur ce sujet.

Réponses (5)

87
87
87
2012-01-09 16:39:36 +0000
  • Démarrez votre ordinateur avec un live-USB/CD en mode UEFI. J'avais deux options de démarrage : <flash_drive> et UEFI: <flash_drive>, la seconde est nécessaire pour exposer les variables efi dans /sys/firmware/efi/ afin que efibootmgr ne tombe pas en panne plus tard. Démarrer avec la première option me donne l'erreur suivante :

  • chroot dans le système cassé (similaire à l'aide ubuntu grub2 mais avec des spécificités efi) :

  • Selon votre distribution linux, vous faites maintenant des choses différentes.

  • Maintenant, tapez Ctrl+D pour quitter le chroot, démontez tout et redémarrez :

Vous devrez peut-être adapter cela à vos besoins (table de partition différente, partition /boot séparée, etc.) et ce n'est peut-être pas la seule option mais cela a très bien fonctionné pour moi.

Un système live approprié pour réparer les choses est grml . Il existe également un guide complet sur la façon de configurer un périphérique USB amorçable, dont la section Mac est la plus utile en fait (il suffit de créer une partition FAT32, de copier les fichiers, de redémarrer, c'est fait).

5
5
5
2014-03-20 00:27:02 +0000

Comme pour Maxine, j'ai trouvé que mes paramètres UEFI dans le BIOS étaient endommagés et que ma machine ne démarrait pas.

Dans mon cas, il s'agit d'un Lenovo ThinkServer RD430 avec Linux Mint Debian et il semblait que tout ce que je ferais pour mettre à jour la mémoire vive ou changer les disques durs du serveur l'empêcherait de démarrer. Dans mon cas, le système d'exploitation est linuxmint-201403-mate-dvd-64bit installé via USB. (voir ci-dessous pour une description complète des événements qui empêcheraient l'UEFI de fonctionner)

Le fait de passer par exactement les mêmes étapes sur un ThinkServer TS140 n'a pas fait perdre la tête à l'UEFI, même une seule fois. J'ai regardé la page du pilote RD430 et ma biographie est vieille de deux versions. Je n'ai jamais eu à mettre à jour les bios sur une carte mère avant, donc je ne suis pas du genre à mettre à jour automatiquement quand il y a de nouvelles versions disponibles. Après avoir mis à jour le bios, la réponse de Maxine ci-dessus a fonctionné, mais avec une petite entorse…

# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / #

La commande efibootmgr -c a ajouté deux entrées 0000 et 0002 ! L'entrée Boot0002* Linux HD en premier dans l'ordre de démarrage n'est pas correcte. L'entrée 0000 est correcte.

Pour tester cela, j'ai essayé de démarrer sans interruption, ce qui est l'entrée 0002. Comme prévu, cela n'a pas fonctionné. J'ai donc redémarré le serveur, appuyé sur F12, et j'ai choisi linuxmint. Comme prévu, il a démarré sur mon installation LMDE.

La façon de supprimer les entrées non désirées via efibootmgr est :

# efibootmgr -b 2 -B

J'ai utilisé cette commande pour supprimer les entrées 0001 et 0002. L'option 0001 était la dernière de mes nombreuses tentatives de récupération du système d'exploitation.


Notes UEFI

Si vous lisez ceci et êtes aussi frustré que je le suis/étais par l'UEFI, voici quelques notes et ressources : “ Démarrer avec le shell UEFI est similaire à l'utilisation d'un shell DOS. ” Intel a réalisé un manuel de référence PDF pour les commandes shell efi .
“ Lenovo UEFI_on_TS430 document est la seule ressource que j'ai vue expliquant l'utilisation du shell efi. ” Une autre référence au shell uefi de nPartition Administrator’s Guide. “ Vous pouvez essayer de démarrer sur une partition à partir du shell efi en naviguant vers le chargeur et en l'exécutant.
” UEFI veut que le disque ait une table de partition GPT, et non une table de partition msdos. “ UEFI veut que la première partition de votre disque soit formatée fat32 ou vfat. ” Pour un démarrage “générique”, il doit y avoir un répertoire /EFI/boot à la racine avec bootx64.efi dedans. “ Certaines personnes copient leur grubx64.efi de l'endroit où il a été installé vers /EFI/boot/bootx64.efi et cette tricherie a fonctionné pour eux.
” A chaque fois que vous faites des modifications dans le grub, utilisez efibootmgr -v avant et après pour vous assurer que votre redémarrage est correct.


Mon expérience avec la RD430

J'ai installé l'OS en résine plus de 10 fois au cours de la semaine dernière en essayant de régler ce problème et de configurer le serveur. Ma configuration est un SSD sur ce contrôleur RAID dans le slot PCIe 2.0 avec LMDE installé dessus. contrôleur RAID AOC-S3008L-L8i ) dans le 2e emplacement PCIe 3.0 avec 6x 3TB lecteurs. RAM : 12 Go ECC (3x 4 Go).

Voici les modifications que je ferais pour que mon système ne démarre pas : “ Changer les slots pci S3008L-L8i (en laissant la carte SSD+ seule).
” Disable the LSi software raid bios prompt for onboard controller. “ Add my old HighPoint RocketRaid card to an open PCIe slot. ” Make a change to /etc/default/grub and then run update-grub. (maybe grub-install needs to be run as well?)

3
3
3
2012-03-01 11:08:40 +0000

Je voterais bien pour cette proposition, mais apparemment je n'ai pas assez de représentants sur SuperUser. Je suis heureux d'avoir enfin trouvé une réponse à cette question après des jours de combat contre des clones qui fonctionnaient mais ne voulaient pas démarrer. Je pense que tout cela est lié à l'UEFI et à une sorte de mécanisme de “démarrage sécurisé” ou quelque chose comme ça.

Je travaille hors ligne, donc apt-get n'était pas une option. Ce que j'ai fait, c'est mettre Ubuntu Desktop sur une clé USB, ajouter les paquets grub-efi et grub-efi-amd64 à la racine de la clé USB (grub-efi_1.99~rc1-13ubuntu3_amd64.deb et grub-efi-amd64_1.99~rc1-13ubuntu3_amd64.deb pour Ubuntu 11. 04 - à modifier selon les besoins de la distribution et de l'architecture), et ajoutez également les éléments suivants dans un script sur la clé USB :

#! /bin/bash
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
dir=`dirname $0`
sudo cp $dir/grub-efi*.deb /mnt/tmp
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb"
sudo shutdown -r now

Démarrez la clé USB en direct, ouvrez un terminal, lancez la commande, et le travail est un bon ‘un ! Le seul problème occasionnel est que l'UEFI a parfois été déplacé dans l'ordre de priorité de démarrage en dessous du disque dur, à ce moment là vous devez aller dans le BIOS et changer l'ordre de démarrage pour l'empêcher d'essayer (et d'échouer) sur SATA: drive.

Vous pouvez aussi utiliser dpkg-reconfigure au lieu de dpkg -i, mais cela pose quelques questions sur le chargeur de démarrage.

[edit] Je n'ai pas non plus assez de représentants pour commenter, donc ce que je pensais être un commentaire sur une réponse s'avère être une réponse.

1
1
1
2015-01-21 11:38:23 +0000

Sur mon Ubuntu 14 32 bits. 10 sur Lenovo Yoga 2 Pro, je suis passé au démarrage UEFI comme ceci :

  • créer un dossier

  • monter la partition “EFI System” dans /etc/fstab

  • installer grub-efi-amd64-bin et désinstaller grub-efi-ia32-bin

  • redémarrer Ubuntu en mode efi

  • tester si ça démarre bien, puis j'ai installé grub-efi-amd64 et désinstallé grub-pc grub-gfxpayload-lists avec

je choisis de ne pas supprimer /boot quand on me le demande. Je l'ai peut-être rendu compliqué et cela aurait bien fonctionné :

apt-get install --reinstall grub-efi
update-grub
0
0
0
2018-08-08 01:32:05 +0000

Cette entrée s'apparente davantage à la préparation de votre ordinateur pour réinstaller les entrées efi. C'est aussi ce que vous pourriez trouver comme moyen efficace et simple de créer un disque de secours après l'installation du système sur un support interne (SSD, HDD).

Avec Linux Mint Tara (une variante de Linux étroitement liée à Ubuntu Bionic Beaver), la méthode a à la fois borké mon installation et permis de la sauvegarder plus tard. Elle est née de mon désir de disposer d'une USB active avec persistance, et comme le temps nécessaire à l'installation d'un utilitaire comme Unetbootin pour une installation persistante est à peu près le même que pour une nouvelle installation, j'ai simplement utilisé la même distribution active pour faire une installation sur l'USB que celle utilisée pour installer le système d'exploitation sur le SSD interne. Bien sûr, rien de tout cela n'est du RAID ou une autre installation spécialisée, mais il a fallu préparer une partition de volume sur le disque USB, et faire une installation sur ce disque USB en utilisant la méthode disponible de la distribution, en contournant le disque interne pour une installation sur la racine (/) d'une seule partition. Lorsque j'ai redémarré sur l'USB, les entrées internes de grub UEFI semblaient avoir disparu, ne laissant que le menu grub lorsque j'essayais de sélectionner le disque en utilisant les entrées du menu du BIOS.

Au lieu de cela, le démarrage à partir de l'USB a montré que la méthode de la distribution avait produit un menu grub tout prêt, avec une liste pour le /dev/sda2, la partition contenant le montage /boot/efi. Dans la plupart des installations de disques internes primaires, le nom de la partition grub est hd0, gpt1.

En allant dans “advanced”, plus d'un sauvetage de noyau était disponible. À partir de là, lancez l'utilitaire grub et démarrez normalement.

À partir de ce point, en lançant le système d'exploitation sur le disque interne qui était auparavant inaccessible, débranchez la prise USB, puis lancez sudo grub-install.

Lorsque vous redémarrez sans la prise USB, vous devriez pouvoir y revenir. À ce stade, la clé USB est configurée pour lancer le lecteur interne en mode normal ou de secours, et le lecteur a son propre menu.