This is an old revision of the document!
Defenderse en la consola de comandos de GRUB2
Manual oficial de GRUB2: https://www.gnu.org/software/grub/manual/grub/grub.html
Cuando se arranca el sistema GNU/Linux y se detiene en el prompt “grub>”, se encuentra en la shell de comandos del cargador de arranque GRUB 2. Eso significa que GRUB 2 arrancó normalmente y cargó el módulo normal.mod (junto con otros módulos que se encuentran en /boot/grub/XXX/), pero lamentablemente no encontró su archivo grub.cfg. Este prompt tiene muchas más funcionalidades que el de rescate.
Si por el contrario el prompt que se muestra es “grub rescue>” significa que no pudo encontrar el fichero “normal.mod”, que suele significar que no pudo encontrar ninguno de los archivos de arranque necesarios. Esto puede ocurrir por algunas razones, por ejemplo cuando han cambiado las asignaciones de las unidades, ya sea por un nuevo kernel, edición de la tabla de particiones, mover discos de sitio de manera física, instalación de otros sistemas operativos, etc. En estos escenarios los ficheros de arranque todavía están ahí, pero GRUB2 no puede encontrarlos. Mediante la terminal de rescate de GRUB2 habría que buscar dichos ficheros de arranque, identificar sus sus ubicaciones y posteriormente arrancar el sistema y arreglar su configuración de GRUB una vez dentro más cómodamente. Este prompt está más limitado en comandos que cuando no se está en modo rescate, por ejemplo no se disfrutaría de autocompletado o historial.
Las terminales de GRUB2 pueden usarse para descubrir imágenes de arranque, kernels y sistemas de archivos raíz. El acceso es completo a todos los sistemas de archivos de la computadora, sin importar los permisos.
En instancias de GRUB2 funcionales, para ingresar en la consola se puede pulsar la tecla “C”. La distribución de teclado es la de USA, por lo que puede ser de ayuda tener una imagen de la distribución de teclas en teclados americanos.
Los siguientes comandos funcionan en ambos tipos de terminales de GRUB2.
Inspeccionar el sistema
# El primer comando que debes ejecutar invoca el paginador, recomendado para paginar salidas de comandos largos. grub> set pager=1 # Se listan los discos y particiones. Discos con MBR se mostrarán particiones "msdos". En el ejemplo se muestran dos discos con dos particiones. grub> ls (hd0) (hd0,msdos2) (hd0,msdos1) (hd1) (hd1,gpt1) (hd1,gpt2) (hd2) (hd2,msdos5) (hd2,msdos1) # Obtener información sobre el tamaño de disco, partición y tipo de sistema de ficheros y UUID. grub> ls (hd0) # Muestra información sobre el disco hd0 grub> ls (hd1,1)/ # Muestra información sobre la partición primaria del disco hd1. # Se lista el contenido de una partición concreta. El objetivo es encontrar la partición con el sistema de ficheros que tienen /boot. grub> ls (hd1,gpt1)/ grub> ls (hd1,1)/ # Esta sintaxis también está permitida. bin/ dev/ home/ lib64/ opt/ root/ sbin/ sys/ usr/ boot/ etc/ lib/ mnt/ proc/ run/ srv/ tmp/ var/
Arrancar un sistema a través de GRUB2
En sistemas sin problemas en Grub, algunos sistemas no muestran el menú GRUB2 por defecto y pasan directamente al arranque del sistema. En estos casos se debe usar la tecla Esc (BIOS) o bien Shift (EFI/Vbox VMs, etc). Lo primero para arrancar un sistema operativo desde GRUB2 sería localizar la partición donde el directorio /boot. La segunda línea le dice a GRUB la ubicación del kernel que quiere usar. Empiece escribiendo /boot/vmli, y luego use el tabulador para rellenar el resto. Escriba root=/dev/sdX para establecer la ubicación del sistema de archivos raíz. Sí, esto parece redundante, pero si lo omites tendrás un kernel panic.
# La primera línea establece la partición en la que se encuentra el sistema de archivos raíz. grub> set root=(hd0,5) # Ubicación del kernel deseado y la partición usando la sintaxis habitual de Linux (ej, /dev/sde2 == (hd4,msdos2)). grub> linux /boot/vmlinuz-linux root=/dev/sda5 # Línea establece el archivo initrd, que debe tener el mismo número de versión que el kernel. grub> initrd /boot/initramfs-linux.img # Arrancar el sistema. grub> boot
Otros comandos útiles de GRUB2
# Leer archivos del sistema de ficheros, por ejemplo "/etc/issue" (http://www.escomposlinux.org/lfs-es/blfs-es-1.0/postlfs/logon.html). grub> cat (hd1,gpt1)/etc/issue Arch Linux \r (\l inicializada el \d a las \t) # Comparar dos archivos grub> cmp (hd0,5)/etc/profile (hd0,5)/etc/profile_backup # Cambiar el color o poner una imagen de fondo grub> background red grub> background_image (hd0,5)/ruta/a/imagen.jpg