Cómo reparo GRUB con EFI en Ubuntu? ¡Trabajadores! Desde los tiempos del Primer Peronismo he explicado cómo recuperar GRUB con el DVD de Ubuntu. Este procedimiento nos servirá para las instalaciones típicas, con viejo arranque desde el BIOS. Sin embargo, de un tiempo a esta parte el efectivo arrancador GRUB ha debido afrontar la aparición del sistema de arranque firmado, llamado EFI o UEFI, que está presente en los equipos de más moderna factura. UEFI o EFI es un arrancador compuesto, que es más complejo que el sistema convencional de arranque. GRUB puede utilizarlo, haciendo contacto desde lo que sería la BIOS del sistema hasta una partición especial dentro del disco rígido que contiene el arrancador. En el caso de Ubuntu 18.04LTS, esta partición tiene unos 512MiB de espacio y va formateada en FAT32 para máxima compatibilidad. Allí se deposita el arrancador en el punto de montaje /boot/sh, y luego en el resto de las particiones de sistema (si existen) continuarán en siguientes particiones, normalmente dentro del misma unidad de disco, o eventualmente en otras (según lo hayamos configurado especialmente). Si hubiese habido una falla con GRUB o la partición EFI, y el sistema se niega a arrancar desde el disco rígido, podremos recuperarla, siempre y cuando no eliminemos las particiones de manera alguna. Para ello utilizamos el DVD arrancable de Ubuntu, o un pendrive preparado con la ISO de Ubuntu (idealmente la misma versión que la utilizada para instalar la versión). La arrancamos y elegimos "Probar Ubuntu sin Instalar". Una vez iniciado el escritorio Live, debemos identificar las particiones del disco. Para ello conviene utilizar gParted, que está incluido en el Ubuntu Live. Debemos prestar especial atención a la identificación de discos, pues la misma describe como /dev/sdx a la unidad de disco, /dev/sdxx es la partición donde se encuentra la EFI, y /dev/sdxxx es la partición de sistema. Por ejemplo, en una instalación típica de Ubuntu 18.04LTS, en un único disco rígido, el disco podría ser /dev/sda, la partición EFI /dev/sda1 y la partición de sistema /dev/sda2. Sin embargo, debemos prestar atención pues la misma podría variar en otras condiciones, y es importante tomar nota de las identificaciones correctas. Si lo deseamos hacer desde la terminal, abrimos una con Ctrl+Alt+T e ingresamos: sudo fdisk -l Una vez identificadas las particiones EFI y de sistema, debemos montarlas. Ello lo haremos desde la terminal por medio de los comandos necesarios. Primero montamos la partición de sistema, usamos: sudo mount /dev/sdxxx /mnt Luego montamos la partición EFI: sudo mount /dev/sdxx /mnt/boot/efi for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done Luego nos damos de alta como administrador en la partición de sistema recién montada: sudo chroot /mnt Confome estemos logueados como Root, tendremos al alcance nuestro disco rígido. Ahora debemos reinstalar la parte de GRUB que va en el disco. Ello se hace con: grub-install /dev/sdX ...y lo actualizaremos con: update-grub Si nos dice que tuvo éxito, ingresamos: exit Y luego reiniciamos el sistema (se nos solicitará retirar el DVD o Pendrive de Ubuntu, y el equipo debería reiniciar correctamente desde el disco rígido con EFI, como lo hacía normalmente. Editar errores de GRUB Puede haber sucedido que hayamos cometido errores en la configuración de GRUB. Si tal fuese el caso y tuviésemos que editarlo que editarlo, lo haremos con: mount /dev/sdxxx /mnt chroot /mnt Una vez montado el sistema de archivo del disco, lo editamos con: nano /etc/default/grub ...y revisamos que todo esté correcto. Si no tuviésemos la referencia del archivo de configuración de GRUB, econtraremos una muestra en /usr/share/grub/default/grub Recrear la partición EFI para GRUB Si por alguna causa catastrófica hubiésemos perdido la partición EFI, es fácil hacerla de nuevo. Podemos usar fdisk o gParted para crear una nueva partición GPT con el tipo "EFI partition (1)", idealmente al principio del disco. Acto seguido la formateamos con: sudo mkfs.msdos /dev/sdx ...luego la montamos con: sudo mount /dev/sdXX /mnt/boot/efi ...y seguimos montando el resto del sistema, como en el caso anterior. sudo mount /dev/sdXXX /mnt sudo grub-install /dev/sdx Recuperar la EFI cuando tenemos nuestro sistemas de archivos repartido en distintos discos rígidos Indudablemente que si al instalar el sistema operativo se repartió el sistema de archivos largo de diferentes particiones (la carpeta raíz "/" en un disco y la carpetas /home, /tmp y /var en otro), la tarea de recuperación de la EFI será algo más desafiante. En tal caso tenemos que proceder a averiguar y tomar adecuada nota de qué identificador de discos y en qué particiones está cada componente del sistema de archivos (lo averiguamos con sudo fdisk -l). Ejemplo: Suponiendo que tenemos dos discos, y que nuestro sistema de archivos está estructurado de la siguiente manera: Disco de estado sólido de arranque y sistema /dev/sda: Partición /dev/sda1 -> particion EFIPartición /dev/sda2 -> carpeta "/" del sistema Disco rígido de trabajo /dev/sdb: Partición /dev/sdb1 -> carpeta /home Partición /dev/sdb2 -> carpeta /tmp Partición /dev/sdb3 -> carpeta /var, En tal caso, si deseamos recuperar la partición EFI en este sistema de archivos dividido entre dos discos, deberíamos ingresar los siguientes comandos: sudo mount /dev/sda2 /mnt sudo mount /dev/sdb1 /mnt/home sudo mount /dev/sdb2 /mnt/tmp sudo mount /dev/sdb3 /mnt/var sudo mount /dev/sda1 /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/sda update-grub Si nos dice que tuvo éxito, ingresamos: exitY reiniciamos el sistema.