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>
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.