Arrancar Linux manualmente desde Grub (configuración de Grub borrada o incorrecta)

Existe la posibilidad de que llegue un día, arranquemos uno de nuestros sistemas GNU/Linux y en el momento en el que deberíamos visualizar el menú de Grub con los sistemas y Kernel disponibles para arrancar nos encontremos con esto:

grub>
grub shell

Antes de entrar en modo pánico debemos tener unas nociones básicas que nos permiten arrancar un sistema manualmente desde Grub cuando su fichero de configuración ha sido borrado o está vacío/incorrecto. Básicamente se trata de construir y ejecutar manualmente las líneas que componen cada entrada en el fichero grub.conf o menu.lst. El siguiente ejemplo práctico ha sido realizado sobre un sistema CentOS (RHEL, Fedora, etc) con el fichero /etc/grub.conf | /boot/grub/grub.conf eliminado.

Bien, para arrancar el sistema de forma correcta tenemos que establecer una secuencia de tres comandos en la que especifiquemos lo siguiente:

Partición que contiene el kernel

Una vez que estemos en la shell de Grub, si ejecutamos el comando root a secas nos dirá la partición en la cual se encuentra el/los kernel (podéis usar [TAB] para ver los comandos disponibles:

grub> root
 (hd0,0): Filesystem type is ext2fs, partition type 0x83

Ya sabemos que la partición que contiene el kernel, imágenes initrd y demás es la (hd0,0), podemos navegar por ella usando el comando find y haciendo uso de la tabulación para el auto-completado de nombres, lo verificamos:

grub> find (hd0,0)/ <- presionad [TAB]
 Possible files are: lost+found grub efi initramfs-2.6... vmlinux-2.6.....

Una vez verificado ejecutamos el siguiente comando (normalmente no es necesario ya que como vemos anteriormente lo detecta automáticamente):

grub> root (hd0,0)

Especificar el kernel y ruta al filesystem

grub> kernel /vmlinuz-2.6.32-71.el6.i686  ro root=/dev/sda1

Ya sabemos que el kernel está en /vml* así que lo especificamos como veis en la línea superior, usad el auto completado con [TAB] para no tener que escribir todo el nombre. Especificamos que en primera instancia se tiene que arrancar en modo lectura (ro) y finalmente la ruta a la partición root de nuestro sistema (dev/sda1). La partición root es la que contiene /sbin/init, también se puede especificar mediante el UUID. Si no sabemos cual es podemos localizarla con el siguiente comando:

grub> find /sbin/init
 (hd0,1)

(hd0,1)=/dev/sda2

Otra forma sería consultando el fichero fstab:

grub> cat (hd0,1)/etc/fstab

Ubicación del Initial RAM disk

El RAM disk se encuentra en la misma ruta/partición que el kernel:

grub> initrd /initramfs-2.6.32-71.el6.i686.img

Secuencia completa para arrancar el sistema

Haciendo un resumen y añadiendo el último comando para arrancar el sistema (boot) quedaría así:

grub> root (hd0,0)
grub> kernel /vmlinuz-2.6.32-71.el6.i686  ro root=/dev/sda1
grub> initrd /initramfs-2.6.32-71.el6.i686.img
grub> boot

Si todo va bien, debería arrancar sin problemas el sistema. Una vez dentro podréis restaurar el Grub con tranquilidad.

9 comentarios en “Arrancar Linux manualmente desde Grub (configuración de Grub borrada o incorrecta)

  1. Mirando hoy el RSS, he encontrado esto, y por lo que veo, usas grub 1, alguna razon para eso?

    O simplemente es el que viene en las distribuciones basadas en red Hat?

    La gente normalmente tiene grub2, de hecho ayer en la uni, tuve que arrancar 2 linux de dos xicos que tocaron lo que no tenian que tocar (Famoso error PEBKAC)y al actualizar ubuntu se les borraron las lineas del linux. Y usaban grub2.

    Por si alguien llega a este articulo que sepa que en grub2 el root se hace como root=(hd0,1) y este pertenece a /dev/sda1 y en vez de usar kernel, se utiliza el comando linux.

    Dracks

  2. Muy buenas, para comprobar lo hice con linux centos 6.0, borre el archivo grub.conf y he seguido los pasos que indicas, todo iba bien hasta llegar al boot, doy enter, empieza a bootear pero luego se queda en un estado sleeping, me salgo del sistema y reinicio y me queda nuevamene en grub>

    • Buen dia

      Cuando reinicio mi servidor redhat v5 se queda en grub>
      y no reconoce el comando ls , ni el linux rescue, ni el find

      Y no tengo la media del SO

      Que puedo hacer? …. .Gracias

      Saludos

  3. Buenas noches saludos, soy un novato por asi llamarlo en linux y recientemente en el trabajo me ha llegado un servidor KONTRON el cual llamamos PCI ( Puesto de Control e interfaz Local), el hecho es que el mismo se le averio un disco duro el slave en este caso el master siguio en funcionamiento y estan estructurado por una tarjeta controladora SATA, al sacar el mencionado disco me doy cuenta que estaba grave osea a nivel mecanico y lo reemplazo por uno nuevo luego al encender la maquina me muestra el mismo error que vos especificas en este apartado el de minimal-bash etc….. el hecho es que ninguno de los comandos que colocas me sirven no hacen ni papa en mi caso, y ahora esta peor la maquina ya que la enciendo y el disco sincroniza perfecto sin mostrar error pero la pantalla de me queda totalmente en negro con un guion que titila en la parte superior izquierda agradezco de antemano a los que me puedan ayudar en este caso ya que necesito de manera urgente solventar este problema.
    La distribucion de linux sobre el cual funciona este sistema es RED HAT 1.0…..ayudaaaa

  4. Me has salvado la vida, no se encuentra nada sobre ésto en ningun lado. Estaba a punto de reformatear, te lo agradezco.

Comments are closed.