4. Reinstalación de GRUB2

    En el caso de que el cargador de arranque GRUB sufra alguna contingencia, bien que desaparezca al  instalar o reinstalar un sistema operativo distinto a GNU/Linux (por ejemplo Windows), bien porque debemos restaurar un sistema completo desde las copias de seguridad, bien por cualquier otra causa, estos son los pasos que debemos seguir para recuperarlo.

    Debemos utilizar una distribución LiveCD para instalar nuevamente GRUB en el sistema que lo ha perdido. Arrancamos el LiveCD, abrimos una terminal y tecleamos lo siguiente para visualizar las particiones de los distintos discos duros:

# fdisk -l

    A la vista de las particiones de los discos, debemos averiguar cual/es es/son la/s partición/es donde reside el sistema GNU/Linux a recuperar, la/s montamos en /mnt (o en cualquier directorio que creemos al efecto). /mnt suele estar vacío y está destinado a operaciones de montaje de dispositivos. Teniendo en cuenta que en la mayoría de los casos el sistema objetivo residirá en una única partición y muy probablemente sea la sda1, teclearemos:

# mount /dev/sda1 /mnt

    En caso de que el árbol de directorios del sistema objetivo esté distribuido en más de una partición hay que montarlas todas a partir de la partición que contiene la raíz (/). Supongamos que el segmento /boot está ubicado en sda2, teclearemos:

# mount /dev/sda2 /mnt/boot

    Si estamos restaurando GRUB2 en un sistema que arranca en modo UEFI hay que crear un nuevo sistema de ficheros vfat 32 en la partición "EFI Filesystem" y montarla posteriormente en el directorio /mnt/boot/efi. Suponiendo que dicha partición es /dev/sda5 teclearemos:

# mkfs.vfat -F 32 /dev/sda5
# mount /dev/sda5 /mnt/boot/efi


    A continuación, montamos los directorios del sistema LiveCD que contemplan las particularidades de la máquina donde estamos realizando la operación y que debemos trasladar,
en modo enlazado (--bind), al sistema objetivo: 

# mount --bind /dev /mnt/dev
# mount --bind /sys /mnt/sys
# mount --bind /proc /mnt/proc

    Abandonamos del árbol de directorios del sistema LiveCD y convertimos en nuevo al árbol de directorios al tinglado que cuelga de /mnt

# chroot /mnt /bin/bash

    Por último, ejecutamos el instalador de GRUB2 con el siguiente comando:

# grub-install --recheck --target "mirar manpage para averiguar el valor"  /dev/sda

(sda se debe sustituir por el disco duro que se utilice para arrancar, casi siempre es sda. Ojo!! no poner el número de partición, sólo sda)

    Reconstruimos el fichero de configuración de GRUB. En este proceso se detectarán TODOS los sistemas operativos instalados en TODOS los discos y se generará un menú de arranque correcto y completo:

# grub-mkconfig -o /boot/grub/grub.cfg

Reiniciamos el sistema y cruzamos los dedos para que funcione..