Cómo recupera el Grub 2 de Debian (y distribuciones derivadas) porque ha sido sustituido por el de otra distribución, o porque lo hemos perdido completamente.


Usualmente cuando tengo que reinstalar el Grub (actualmente Grub 2) es porque este ha sido sustituido por el de otra distribución que tengo también en la computadora. Recientemente instalé Windows 7 en otra unidad de disco local -por cierto, toda una odisea no exenta de peligros que ya expondré- y como cabía esperar perdí el menú de Grub; al arrancar la computadora se iniciaba directamente Windows.

Así que me ha parecido oportuno exponer estas dos circunstancias por si a alguien que pase por aquí le es útil. No hay que alarmarse es realmente sencillo; hasta yo soy capaz de hacerlo.


Dos situaciones distintas

Hay al menos dos situaciones en la que tenemos que recuperar el Grub (actualmente Grub 2):

1-El menú de Grub ha sido sustituido por el menú de Grub de otra distribución Linux. En realidad el Grub instalado por una distribución ha sido sustituido por la instalación del Grub de otra distribución. Y queremos instalar el Grub inicial con su menú -por las razones que sean-.

El Grub que teníamos se ha sustituido al instalar otra distribución, o durante una actualización de otra distribución que afecta al Grub, este se ha actualizado e se instala su menú sustituyendo al que había (que es el que queremos recuperar).

También cabría aquí que, simplemente, queremos cambiar el menú de Grub de una distribución por el de otra; porque nos gusta más o porque queremos probarlo.

2-Hemos perdido completamente el Grub con su menú, al encender la computadora o no pasa nada, o arranca directamente Windows y no podemos entrar a ninguna distribución Linux. Por lo general, esto sucede cuando instalamos Windows, o cuando hemos recuperado su arranque por algún incidente.

También podría ocurrir por otros motivos (al trastear las particiones con Gparted, por ejemplo), y con independencia de que tengamos o no tengamos Windows en la computadora; no es usual pero es posible.

Supuestos para desarrollar el tema con un ejemplo

-En ambos casos la distribución de la que queremos recupera el Grub es Debian, o una distribución derivada; creo que los procedimientos que aquí se muestran son válidos también.

-El Grub lo reinstalamos en el MBR del disco local principal que suele ser sda.

Nota: MBR (Master Boot Record) es el sector de arranque principal, también conocido como registro de arranque maestro, y es el primer sector, sector cero, de un dispositivo de almacenamiento de datos como es un disco duro. Su finalidad puede ser el arranque del sistema operativo (boot), o también contener la tabla de particiones, o sólo, y simplemente, para identificar un dispositivo. En los sistemas Debian por lo general el Grub se instala por defecto en el MBR. Podría instalarse también en una partición boot específica o en la partición /root de Debian.

-El esquema de las particiones del disco local es el que se muestra en la tabla siguiente. La distribución de particiones, obviamente, puede ser cualquier otra, por eso es importante que cada uno identifique el disco de arranque (sda), y la partición donde se encuentra /root de Debian.

sda * MBR



sda1 Primaria

Windows
sda2 Primaria

Windows
sda3 Primaria Swap

sda4 Extendida



sda5 * Lógica /root Debian
sda6 Lógica /home Debian
sda7 Lógica /root Otra distribución Linux
sda8 Lógica /home Otra distribución Linux


Situación 1. El menú del Grub de Debian ha sido sustituido por el de otra distribución, y queremos reinstalar aquél.

Arrancamos la computadora, a través del menú de Grub (que ahora es el de otra distribución) entramos en Debian, abrimos una terminal y como root (su y contraseña) o como usuario con privilegios de root (sudo), reinstalamos el Grub en el MBR del disco local sda:

# grub-install --recheck /dev/sda

Seguidamente actualizamos la configuración del Grub para que nos detecte todos los SO que tengamos en nuestra computadora, los que están en el disco local sda, pero también en otros si tenemos algún otro. Por ejemplo, yo tengo Windows 7 en sdd2

# update-grub



Situación 2. Hemos perdido el menú de Grub y no podemos entrar a ninguna distribución Linux

Puede ser que tengamos Windows y al arrancar la computadoras se inicie directamente este SO. Pero también podría ser que no tengamos Windows, y el procedimiento sería igual.

Encendemos el ordenador con un LiveCD de una distribución que utilice grub-2 y de la misma arquitectura (32 o 64 bits); yo utilicé Kubuntu 14.04 (64 bits).

Una vez se haya cargado el sistema abrimos la terminal y nos identificamos como root. En el caso de que el LiveCD sea de Ubuntu o distribuciones derivadas, ejecutamos el siguiente comando:

# sudo su

Si el LiveCD es de Debian tengo entendido, no lo he utilizado nunca, que se obtienen los privilegios de root mediante:

# user
# contraseña: live

Podemos listar los discos locales y particiones para localizar donde tenemos la partición /root de Debian, pero lo más efectivo es saberlo de antemano.

# fdisk -l

Montamos la partición /root de Debian, que en el presente ejemplo la tenemos en sda5

# mount /dev/sda5 /mnt

Reinstalamos el Grub en el MBR del disco sda

# grub-install --root-directory=/mnt/ /dev/sda

Reiniciamos el equipo, pero sin el LiveCD

Al arrancar la computadora de nuevo ya tendremos el menú de Grub. Entramos en Debian, abrimos la consola y actualizamos Grub para que detecte todo los sistemas operativos (puede que alguno no nos haya aparecido en el menú al arrancar la computadora):

# update-grub

Y esto es todo, sencillo y fácil.

Saludos flamencos,

Comentarios

  1. Saludos del Señor Paquito.

    Tú lo has dicho, sencillo y fácil.

    ResponderEliminar
  2. Es una situación que se da a menudo para los que nos entretenemos "trasteando" con distintas distribuciones Linux, y si está win2 por medio, ya está liada. Yo personalmente me arreglo con Super Grub Disk.
    Muy interesante la información.

    ResponderEliminar
    Respuestas
    1. Super Grub Disk es desde luego una opción gráfica también muy interesante para estos menesteres.

      Saludos flamencos amigo Petrus,

      Eliminar
  3. Solución perfecta y sencilla para mi fijo, que no tiene UEFI
    ¿Serviría lo mismo para una bios UEFI, con el Secure Boot activado?.
    Me da "miedo" cargarme algo y tener que volver a meter alguna de las 4 distros que tengo en el portátil.
    Gracias de antemano, Benja.

    ResponderEliminar
    Respuestas
    1. Nunca me he tenido que enfrentar a la dichosa UEFI, pero yo diría que esto es una cuestión distinta, y creo que el método es válido. En cualquier caso para quitarte el “miedo” por este asunto o por cualquier otro, yo te recomendaría que hagas una imagen de seguridad con Clonezilla del disco local donde tienes las distros; en este blog tienes una tutorial (pestaña Tutoriales). Y puedes probar a sustituir el Grub de una distro por la de otra. Si lo hicieras sería muy de agradecer que compartieras aquí el resultado -que debe ser positivo- por si a alguien que pase por aquí le es útil.

      Saludos flamencos y gracias por comentar,

      Eliminar
    2. En UEFI me ha funcionado volviendo a poner el grub de ubuntu (imagino que si hubiera puesto el de Debian, también).
      No me ha funcionado intentando poner los grub de openSUSE o Fedora. Parece que lo instala bien (dice que no hay errores), e intento actualizar con los típicos 'grub2-mkconfig -o...' pero luego sigue arrancando el grub de Ubuntu.
      No me importa porque, aunque feo, el grub que me gusta es el de las derivadas de debian, que me reconoce todos los sistemas...
      De todas formas, si falla algo para los EFI, siempre puedes tirar de F12 ó F10, que te da la lista de distros UEFI, y ya con tiempo pondrás el grub que te guste.

      Eliminar
    3. Muy agradecido Knight99, con tu aportación estamos dejando más completo el contenido del artículo.

      Saludos flamencos,

      Eliminar
  4. Hola. Mira me sucede algo en el inicio de Debian 8 y se retrasa el inicio 1m 30s, y luego todo sigue bien. Creo que busca la particion donde antes tenia un fedora instalado, y al que borre la particion para ganar espacio en la /home de debian. Pero....la swap con la que lo instale es la de fedora. Un lio barbaro y me tira estas lineas al inicio:
    "A start job is running for dev-mapper-fedora/x2dswap.device"
    Me tira un numero UUID de la swap que es el unico que veo al editar /etc/fstab. Me preguntaba que pasaria si la descomento a la linea?
    Bueno muchas gracias y apreciaria tu ayuda.
    Esta muy bueno el sitio. Hacia rato no andaba, porque abandone Suse, pero me gusta todo lo que producis. Saludos

    ResponderEliminar
    Respuestas
    1. En principio una sola partición swap la pueden compartir más de una distribución. Consulta este otro artículo que creo que te puede ser útil:

      https://diversidadyunpocodetodo.blogspot.com.es/2015/01/start-job-is-running-for-dev-disk-by-arranque-lento-swap.html

      Saludos flamencos,

      Eliminar
  5. saludos, me ha sido de mucha utilidad para rescatar el grub de linux parrot os en un arranque dual con linux zorin .

    cordialmente
    luis carlos
    saludos

    ResponderEliminar
    Respuestas
    1. Me alegro y gracias por comentarlo.

      Saludos flamencos,

      Eliminar

Publicar un comentario