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

32

Je veux réinstaller GRUB 2 et j'ai trouvé ces instructions: Comment réparer, restaurer ou réinstaller Grub 2 avec un Ubuntu Live CD ou USB . Dans mon cas, le chargeur de démarrage est installé dans la partition EFI. Si j'utilise les commandes fournies dans ce guide, GRUB sera-t-il réinstallé sur la partition EFI automatiquement, ou sera-t-il installé dans la partition racine où Ubuntu est installé? De toute évidence, je ne veux pas que cela se produise.

Generoso
la source
3
Les instructions dans le lien fourni sont valables pour réinstaller GRUB uniquement en mode BIOS hérité, cela ne fonctionnera pas dans votre cas. Pour réinstaller GRUB dans une installation Ubuntu en mode BIOS EFI, veuillez lire ma réponse. :)
cl-netbox
Merci beaucoup! :) J'ai quelques questions: lorsque j'ai installé Ubuntu dans mon système UEFI, j'ai trouvé deux entrées dans le bios. Existe-t-il un moyen d'avoir une entrée Ubicu unique? Dans le cas d'une table de partition MBR (donc pas d'EFI ou toute autre partition de démarrage), puis-je utiliser les mêmes commandes à l'exception de: sudo mount / dev / sd ** / mnt / boot / efi?
Generoso
Vous pouvez essayer de supprimer la deuxième entrée Ubuntu avec: sudo efibootmgr (liste toutes les entrées) | sudo efi bootmgr -b <numéro-entrée> -B .... et pour réinstaller GRUB en mode BIOS hérité, exécutez ces commandes: sudo mount / dev / sd ** / mnt | sudo grub-install - répertoire-boot = / mnt / boot / dev / sd * (* = disque | ** = partition système)! :)
cl-netbox
Parfait :) Quoi qu'il en soit, ayant un système UEFI et donc une partition EFI, existe-t-il un moyen d'éviter de se faire remplacer grub lorsque j'effectue une nouvelle installation de Windows?
Generoso
Eh bien, Microsoft ne s'occupe de rien d'autre que de leurs propres produits, vous pouvez donc installer des systèmes Linux sans nuire à Windows - malheureusement ce n'est pas le cas dans l'autre sens - donc lorsque vous installez Windows après avoir installé Ubuntu, vous devez ensuite restaurer le chargeur de démarrage GRUB. :)
cl-netbox

Réponses:

54

Réinstallez le chargeur de démarrage GRUB sur 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 installer».
(Démarrez votre support d'installation en mode EFI, sélectionnez l'entrée Ubuntu avec UEFI en face.)

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

sudo mount /dev/sdXXX /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  

Remarque: sdX= disque | sdXX= partition efi | sdXXX= partition système

Pour identifier les partitions utilisant 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.

cl-netbox
la source
+1 mais pourquoi ne pas installer depuis Ubuntu lui-même?
1
@MarkYisri: Merci beaucoup! :) Parce que c'est le moyen le plus sûr de réinstaller le chargeur de démarrage GRUB sans corrompre les choses et au cas où le système ne démarre pas correctement ... la seule façon de le faire! :)
cl-netbox
1
Dans cette solution, comment «grub-install» sait-il qu'il est censé s'installer en mode EFI?
user334639
3
Le point important est de démarrer le support d'installation dans le mode de démarrage correct, si nous voulons réinstaller, grub-efinous devons démarrer en mode UEFI, si nous voulons réinstaller, grub-pcnous devons démarrer en mode hérité.
mook765
1
Cela a fonctionné pour moi, sauf avec une modification: je l'ai fait grub-install /dev/sdXX, c'est-à-dire pas le disque mais la partition EFI a été utilisée pour installer grub et cela a fonctionné.
Duck Dodgers
3

c'est le seul moyen 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
Chilu Pereira
la source
Que fait --recheck-il? Le manuel dit delete device map if it already exists?
MrCalvin
Si j'appelle l'entrée de démarrage quelque chose de différent par défaut, par exemple, --bootloader-id=Ubuntu_02le démarrage échoue. Il suffit de démarrer dans la console grub ... une solution?
MrCalvin
Oui. cela semble grub-install --rechecknécessaire. Il a corrigé mon EFI HDD USB non fonctionnel.
solsTiCe
2

Merci à @ cl-netbox pour les instructions!

Après avoir mis à niveau (Linux Mint 18.2 Sonya vers 18.3 Sylvia), mon système ne démarre pas, j'ai donc suivi les instructions ci-dessus mais toujours pas de succès. J'ai cependant remarqué 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 

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

Rob Pearman
la source
J'avais un système Ubuntu Bionic en cours d'exécution sur lequel j'ai accidentellement fait rm -Rf / boot / efi! Mon système fonctionnait toujours, j'ai donc essayé d'utiliser les deux dernières commandes (grub-install / dev / mapper / ubuntu - vg-root ET update-grub). Redémarré et tout fonctionne parfaitement. Ouf et merci :)
Roel Van de Paar
2

De plus, si vous démarrez à partir d'un CD live pour récupérer, il peut arriver que vous manquiez le package grub-efi-amd64-bin, puis la ligne

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

échoue avec le message d'erreur: "grub-install: erreur: /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

puis ajoutez / usr / lib / grub / x86_64-efi aux montages chroot.

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

mprot
la source
0

en plus de la réponse ci-netbox.
Si votre version du système d'exploitation pendrive ne correspond pas à celle installée sur le disque, grub-install peut avoir des difficultés à identifier la bonne installation de grub:

$ sudo chroot /mnt
# grub-install /dev/sdX
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. 
Please specify --target or --directory.

Essayez d'identifier manuellement l'installation à utiliser

# ls /usr/lib/grub/
grub-mkconfig_lib  x86_64-efi  x86_64-efi-signed

Redémarrez ensuite grub-install:

# grub-install --target=x86_64-efi /dev/sdX 
Installing for x86_64-efi platform.
Installation finished. No error reported.
Emmanuel
la source
0

Si vous perdez la partition EFI, il est facile de la récupérer. Vous pouvez utiliser fdiskou partedpour créer une nouvelle partition GPT avec le type "partition EFI (1)" et la formater avec:

sudo mkfs.msdos /dev/sdX

puis montez-le et vous pouvez suivre la course:

sudo grub-install /dev/sdX

comme dans d'autres solutions.

cengique
la source
0

donc je suppose que la raison du problème est que l'installation d'Ubuntu ne monte pas la partition efi si fstab. et met à jour grub. lors de la mise à jour.

Shimon Doodkin
la source