¿Cómo puedo reinstalar GRUB en la partición EFI?

32

Quiero reinstalar GRUB 2 y encontré estas instrucciones: Cómo reparar, restaurar o reinstalar Grub 2 con un CD o USB de Ubuntu Live . En mi caso, el gestor de arranque está instalado en la partición EFI. Si utilizo los comandos proporcionados en esta guía, ¿GRUB se reinstalará automáticamente en la partición EFI o se instalará en la partición raíz donde está instalado Ubuntu? Obviamente, no quiero que esto suceda.

Generoso
fuente
3
Las instrucciones en el enlace provisto son válidas para reinstalar GRUB solo en modo BIOS heredado, esto no funcionará en su caso. Para reinstalar GRUB en una instalación de Ubuntu en modo EFI BIOS, lea mi respuesta. :)
cl-netbox
¡Muchas gracias! :) Tengo algunas preguntas: cuando instalé Ubuntu en mi sistema UEFI, encontré dos entradas en la BIOS. ¿Hay alguna manera de tener una entrada única de ubuntu? En el caso de la tabla de particiones MBR (por lo que no hay EFI ni ninguna otra partición de arranque), ¿puedo usar los mismos comandos excepto: sudo mount / dev / sd ** / mnt / boot / efi?
Generoso
Puede intentar eliminar la segunda entrada de Ubuntu con: sudo efibootmgr (enumera todas las entradas) | sudo efi bootmgr -b <número de entrada> -B .... y para reinstalar GRUB en modo BIOS heredado ejecute estos comandos: sudo mount / dev / sd ** / mnt | sudo grub-install --boot-directory = / mnt / boot / dev / sd * (* = disk | ** = partición del sistema)! :)
cl-netbox
Perfecto :) De todos modos, al tener un sistema UEFI y, por lo tanto, una partición EFI, ¿hay alguna forma de evitar que se anule la grub cuando realizo una nueva instalación de Windows?
Generoso
Bueno, Microsoft no se ocupa de nada más que de sus propios productos, por lo que puede instalar sistemas Linux sin dañar a Windows, desafortunadamente este no es el caso al revés, por lo que cuando instala Windows después de haber instalado Ubuntu, debes restaurar el gestor de arranque GRUB después. :)
cl-netbox

Respuestas:

54

Vuelva a instalar el cargador de arranque GRUB en su instalación de Ubuntu en modo EFI de esta manera ...

Inicie desde el medio de instalación de Ubuntu y seleccione 'Probar Ubuntu sin instalar'.
(Inicie su medio de instalación en modo EFI, seleccione la entrada de Ubuntu con UEFI al frente).

Una vez que esté en el escritorio Live, abra una terminal y ejecute estos comandos:

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  

Nota: sdX= disco | sdXX= partición efi | sdXXX= partición del sistema

Para identificar las particiones use GParted, la herramienta se incluye en el medio de instalación.
Después de ejecutar los comandos, GRUB se instalará en la partición EFI separada.

cl-netbox
fuente
+1 pero ¿por qué no instalas desde Ubuntu?
1
@ MarkYisri: ¡Muchas gracias! :) Porque es la forma más segura de reinstalar el cargador de arranque GRUB sin corromper las cosas y en caso de que el sistema no arranque correctamente ... ¡la única forma de hacerlo! :)
cl-netbox
1
En esta solución, ¿cómo sabe 'grub-install' que se supone que debe instalarse en modo EFI?
user334639
3
El punto importante es iniciar los medios de instalación en el modo de inicio correcto, si queremos reinstalar grub-efitenemos que iniciar en modo UEFI, si queremos reinstalar grub-pctenemos que iniciar en modo heredado.
mook765
1
Esto funcionó para mí, excepto con una alteración: lo hice grub-install /dev/sdXX, es decir, no el disco, pero la partición EFI se usó para instalar grub y funcionó.
Duck Dodgers
3

esta es la única forma que funcionó para mí: (Sistema: 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
fuente
¿Qué --recheckhacer? El manual dice delete device map if it already exists?
MrCalvin
Si llamo a la entrada de inicio algo diferente al predeterminado, por ejemplo, --bootloader-id=Ubuntu_02el inicio falla. Simplemente arranca en la consola grub ... ¿alguna solución?
MrCalvin
sí. Parece que grub-install --recheckes necesario. Solucionó mi USB HDD EFI que no funciona.
SolSTiCe
2

¡Gracias a @ cl-netbox por las instrucciones!

Después de actualizar (Linux Mint 18.2 Sonya a 18.3 Sylvia) mi sistema no arrancaba, así que seguí las instrucciones anteriores pero aún no tuve éxito. Sin embargo, noté que mi máquina tiene / arranque en una partición separada (posiblemente porque estoy usando LVM), por lo que mi proceso ligeramente modificado fue:

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 

Nota: sdX = disco | sdXX = partición efi | sdXY = partición de arranque | sdXXX = partición del sistema

Rob Pearman
fuente
¡Tenía un sistema Ubuntu Bionic en ejecución en el que accidentalmente hice rm -Rf / boot / efi! Mi sistema todavía se estaba ejecutando, así que intenté usar los dos últimos comandos (grub-install / dev / mapper / ubuntu - vg-root AND update-grub). Reiniciado, y todo funciona perfectamente. Phewy y gracias :)
Roel Van de Paar
2

Además, si arranca desde live cd para recuperar, puede ocurrir que le falte el paquete grub-efi-amd64-bin y luego la línea

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

falla con el mensaje de error: "grub-install: error: /usr/lib/grub/x86_64-efi/modinfo.sh no existe. Especifique --target o --directory".

En este caso, ejecute esto fuera de chroot

sudo apt get grub-efi-amd64-bin

y luego agregue / usr / lib / grub / x86_64-efi a los montajes chroot.

Por cierto, el parámetro "/ dev / sdb" está obsoleto y se está ignorando.

mprot
fuente
0

Además de la respuesta ci-netbox.
Si la versión de su sistema operativo pendrive no coincide con la que está instalada en el disco, grub-install puede tener dificultades para identificar la instalación correcta 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.

Intente identificar manualmente la instalación a utilizar

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

Luego reinicie grub-install:

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

Si pierde la partición EFI, es fácil recuperarla. Puede usar fdisko partedcrear una nueva partición GPT con el tipo "Partición EFI (1)" y formatearla con:

sudo mkfs.msdos /dev/sdX

luego móntelo y puede seguir ejecutar:

sudo grub-install /dev/sdX

como en otras soluciones.

cengique
fuente
0

así que supongo que la razón del problema es que la instalación de Ubuntu no está montando la partición efi si fstab. y actualizaciones grub. en actualización.

Shimon Doodkin
fuente