80 votes

Comment puis-je réinstaller Grub sur la partition EFI ?

Je veux réinstaller Grub 2 et j'ai trouvé ces instructions : Comment réparer, restaurer ou réinstaller Grub 2 avec un CD live ou une clé USB Ubuntu . Dans mon cas, le boot loader est installé dans la partition EFI. Si j'utilise les commandes fournies dans ce guide, est-ce que boot loader sera réinstallé dans la partition EFI automatiquement, ou sera-t-il installé dans la partition racine où Ubuntu est installé ? Évidemment, je ne veux pas que cela se produise.

137voto

cl-netbox Points 30097

Réinstallez le Grub Grub à votre installation Ubuntu en mode EFI de cette façon ....

Démarrez à partir du support d'installation d'Ubuntu et sélectionnez "Essayer Ubuntu sans l'installer".
(Démarrez votre support d'installation en mode EFI, sélectionnez l'entrée Ubuntu avec UEFI devant).

Une fois que vous êtes sur le bureau Live, ouvrez un terminal et exécutez ces commandes :

sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub  

Note : sdX = disque sdXX = efi partition | sdXY = partition système

Pour identifier les partitions, utilisez GParted, l'outil est inclus dans le support d'installation.
Après avoir exécuté les commandes Grub sera installé dans la partition EFI séparée.

15voto

Chilu Pereira Points 159

C'est la seule façon qui a fonctionné pour moi : (Système : sdb8, boot : sdb6, efi : sdb2)

sudo mount /dev/sdb8 /mnt 
sudo mount /dev/sdb6 /mnt/boot 
sudo mount /dev/sdb2 /mnt/boot/efi

sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys

sudo chroot /mnt

grub-install --target=x86_64-efi /dev/sdb

grub-install --recheck /dev/sdb

exit &&
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt

10voto

Gabriel Devillers Points 315

Voici comment j'ai procédé sur un bureau standard x86_amd64 EFI, sans chrooting, en supposant que vous avez une partition contenant Ubuntu sur votre disque dur et éventuellement une partition EFI où Grub devrait être installé.

# boot on a live Ubuntu, I used 18.04 but more recent should work

# if you have currently no EFI partition (maybe it was deleted,
# or you are migrating to a new drive):
# sudo gparted
# - create a FAT 32 partition of around 100 MB on the disk of your choice
# (in general the one that host the Ubuntu partition). If you plan to
# move or resize some paritions, anticipate that (for instance by
# creating the EFI partition at the end of the free space).
# - set the flag esp on this partition (the flag boot will also be selected)

# now assuming that the Ubuntu partition is `/dev/sda2` and the (possibly new) EFI partition is `/dev/sda1`
sudo apt install grub-efi
sudo mkdir /media/root && sudo mount /dev/sda2 /media/root
sudo mkdir /media/efi && sudo mount /dev/sda1 /media/efi
sudo grub-install --target=x86_64-efi /dev/sda --efi-directory=/media/efi --boot-directory=/media/root/boot

Cela devrait donner :

Installation pour la plateforme x86_64-efi.

L'installation est terminée. Aucune erreur n'a été signalée.

Puis redémarrez et vous devriez avoir terminé. Vous devrez peut-être indiquer à votre BIOS quel lecteur utiliser, ou quelle partition EFI utiliser, ou quel binaire EFI utiliser.

Si vous avez créé une nouvelle partition EFI, vous devrez peut-être l'ajouter à la liste des partitions EFI. /etc/fstab d'avoir update-grub fonctionne correctement.

Pour plus d'informations : https://wiki.archlinux.org/index.php/Multiboot_USB_drive#Hybrid_UEFI_GPT_+_BIOS_GPT/MBR_boot

6voto

Rob Pearman Points 69

Merci à @cl-netbox pour les instructions !

Après avoir effectué la mise à jour (Linux Mint 18.2 Sonya vers 18.3 Sylvia), mon système ne démarrait pas. J'ai donc suivi les instructions ci-dessus, mais sans succès. J'ai remarqué cependant que ma machine a /boot dans une partition séparée (peut-être parce que j'utilise LVM), donc mon processus légèrement modifié était :

sudo mount /dev/sdXXX /mnt
sudo mount /dev/sdXY /mnt/boot
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub 

Note : sdX = disque | sdXX = partition efi | sdXY = partition de démarrage | sdXXX = partition système

5voto

TekOps Points 61

Aussi, si vous démarrez à partir d'un live cd pour récupérer, il se peut que vous manquiez le paquet Grub-efi-amd64-bin et ensuite la ligne

"grub-install --target=x86_64-efi /dev/sdb" 

échoue avec un message d'erreur : "Grub-install : error : /usr/lib/Grub/x86_64-efi/modinfo.sh n'existe pas. Veuillez spécifier --target ou --directory".

Dans ce cas, exécutez ceci en dehors de chroot

sudo apt get grub-efi-amd64-bin

et ensuite ajouter /usr/lib/Grub/x86_64-efi aux montages chroot.

BTW Le paramètre "/dev/sdb" est obsolète et est ignoré.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X