Introducción
GRUB 2 es la versión más reciente de GNU GRUB, el GRand Unified Bootloader. Un gestor de arranque es el primer programa de software que se ejecuta al iniciarse el equipo. Es el responsable de cargar y transferir el control al kernel (núcleo) del sistema operativo, (Linux, en el caso de Fedora). El kernel, a su vez, inicializa el resto del sistema operativo.
GRUB 2 ha sustituido a lo que se conocía anteriormente como GRUB (es decir la versión 0.9x), que a su vez, se ha convertido en GRUB Legacy.
A partir de Fedora 16, GRUB 2 es el gestor de arranque predeterminado en sistemas con BIOS x86. Para actualizaciones de los sistemas con BIOS el valor predeterminado es también instalar GRUB 2, pero puede optar por omitir la configuración del gestor de arranque completamente.
Tareas / Problemas generales
Actualización de la configuración de GRUB 2 en sistemas con BIOS
Los paquetes grub2 contienen comandos para instalar un gestor de arranque y para crear un archivo de configuración del gestor de arranque.
grub2-install instalará el gestor de arranque - generalmente en el MBR, en el espacio libre sin particionar, y como archivos en /boot. El gestor de arranque será instalado con algo como:
grub2-install /dev/sda
grub2-mkconfig va a crear una nueva configuración basada en el sistema actualmente en ejecución, la que se encuentra en /boot, que se establece en /etc/default/grub, y los scripts personalizables en /etc/grub.d/ . Un nuevo archivo de configuración se crea con:
grub2-mkconfig -o /boot/grub2/grub.cfg
El formato de configuración ha evolucionado con el tiempo, y un archivo de configuración nuevo podría ser ligeramente incompatible con el gestor de arranque antiguo. Por lo tanto a menudo/siempre es una buena idea ejecutar grub2-install antes de ejecutar grub2-mkconfig por alguna razón.
El instalador de Fedora, anaconda, ejecuta estos comandos de grub2 y generalmente no hay ninguna razón para ejecutarlos manualmente.
Generalmente, es seguro editar directamente /boot/grub2/grub.cfg en Fedora. Grubby en Fedora parchea la configuración cuando se realiza una actualización del kernel y tratará de no hacer ningún otro cambio que no sea necesario. (Otras distribuciones, en particular las distribuciones Debian y derivadas-Debian proporcionan un parche de software que agrega un comando update-grub
que no está incluido ni es necesario en Fedora.) Sin embargo los cambios manuales podrían ser sobrescritos con grub2-mkconfig la próxima vez que el sistema se actualice con anaconda. Algunas personalizaciones pueden colocarse en /etc/grubd/40_custom o /boot/grub2/custom.cfg y sobrevivirán a la ejecución de grub2-mkconfig.
Actualización de la configuración de GRUB 2 en sistemas con UEFI
Para Fedora 18 asegúrese de que están instalados los paquetes necesarios:
yum install grub2-efi shim
El archivo de configuración necesario se crea con:
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
(Sin embargo, podría decirse que sería mejor poner el archivo generado con mkconfig en /boot/grub2/grub.cfg y crear un grub.cfg de EFI que sólo apunte a aquél.)
La configuración puede ser ajustada mediante la edición de /etc/default/grub antes de ejecutar grub2-mkconfig.
El gestor de arranque UEFI debe estar configurado para arrancar el /EFI/fedora/shim.efi en el ESP. Probablemente se pueda hacer de alguna manera al arrancar o utilizando efibootmgr.
El gestor de arranque activo se actualizará inmediatamente después que sea actualizado el paquete grub2-efi. No depende de que se esté ejecutando grub2-install y no hay ningún respaldo si es liberada una mala actualización de grub2-efi.
Agregar otros sistemas operativos al menú de GRUB 2
grub2-mkconfig agrega entradas para los otros sistemas operativos que pueda encontrar. Esto se hace en base a la salida de la herramienta os-prober.
Sin embargo esto podría no funcionar tan bien, especialmente para arrancar otros sistemas operativos Linux, y particularmente en sistemas sin UEFI. Ver http://www.gnu.org/software/grub/manual/grub.html#Multi_002dboot-manual-config .
Configuración de la entrada por defecto
Debido a grub2-mkconfig
(y a os-prober) no podemos conocer de antemano el orden de las entradas en /boot/grub2/grub.cfg
, de modo que hemos definido un orden predeterminado adoptando un criterio de nombre/título.
Abra /etc/default/grub
y asegúrese de que existe esta línea:
GRUB_DEFAULT=saved
Aplique el cambio a grub.cfg
ejecutando:
grub2-mkconfig -o /boot/grub2/grub.cfg
Ahora una lista de todas las posibles entradas del menú
grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2
Ahora establezca el valor predeterminado deseado a la entrada del menú
grub2-set-default <menu entry title>
Compruebe la entrada del menú por defecto
grub2-editenv list
Si comprende los riesgos involucrados y aún así desea modificar directamente el archivo /boot/grub2/grub.cfg, se debe proceder de la siguiente manera:
Edite /boot/grub2/grub.cfg, y modifique la línea
set default="0"
por
set default="5"
Encontrando el temido indicador de arranque de GRUB 2
Si no está configurado correctamente, GRUB 2 puede fallar al cargar y posteriormente encontrarse con un indicador de arranque. Para solucionar este problema, haga lo siguiente:
1. Listar las unidades que observa GRUB 2:
grub2> ls
2. El resultado de una tabla de particiones DOS /dev/sda con tres particiones debería ser algo parecido a esto:
(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
3. Mientras que el resultado de una tabla de particiones gpt /dev/sda con cuatro particiones sería similar a la siguiente:
(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)
4. Con esta información ahora puede examinar cada partición de la unidad y localizar los archivos vmlinuz e initramfs:
ls (hd0,1)/
Esto mostrará una lista de los archivos en /dev/sda1. Si esta partición contiene /boot, la salida mostrará el nombre completo de vmlinuz e initramfs.
5. Conociendo la ubicación y el nombre completo de vmlinuz e initramfs ya puede arrancar el sistema.
5a. Defina su partición raíz:
grub> set root=(hd0,3)
5b. Defina el kernel que desea utilizar:
grub> linux (hd0,1)/vmlinuz-3.0.0-1.fc16.i686 root=/dev/sda3 rhgb quiet selinux=0 # NOTE : add other kernel args if you have need of them # NOTE : change the numbers to match your system
5c. Defina el archivo initrd a utilizar:
grub> initrd (hd0,1)/initramfs-3.0.0-1.fc16.i686.img # NOTE : change the numbers to match your system
5d. Instruir a GRUB 2 para que arranque los archivos seleccionados:
grub> boot
6. Después del arranque, abra un terminal.
7. Ejecute el comando grub2-mkconfig para volver a crear el archivo grub.cfg que grub2 necesitó para arrancar su sistema:
grub2-mkconfig -o /boot/grub2/grub.cfg
8. Ejecute el comando grub2-install para instalar grub2 en el disco duro y hacer uso de su configuración:
grub2-install --boot-directory=/boot /dev/sda # Note: your drive may have another device name. Check for it with mount command output.
Otros problemas de GRUB 2
Absent Floppy Disk (Disquetera ausente) : Algunos usuarios han informado que GRUB 2 puede fallar al instalarlo en el sector de arranque de una partición si el controlador de la disquetera del ordenador está activado en el BIOS sin que haya una unidad de disquetes presente. Una posible solución consiste en ejecutar (después de instalar el sistema operativo) desde el modo rescate:
grub2-install <target device> --no-floppy
Configuración de una contraseña con el modo de edición interactivo
Si desea proteger con contraseña en el modo de edición interactivo pero permitir el arranque sin contraseña aquí hay una manera de hacerlo (tomado del método proporcionado por el instalador anaconda):
Cree y edite /etc/grub.d/01_users y coloque lo siguiente en su interior:
set superusers="root" password_pbkdf2 root GRUBPASSWORDHASH export superusers
Tenga en cuenta la existencia del comando grub2-mkpasswd-pbkdf2 que es parte del paquete grub2-tools. Ejecute grub2-mkpasswd-pbkdf2 desde la línea de comandos, le pedirá una contraseña dos veces y luego generará un hash de la misma. Tomar ese dato de salida y sustituirlo por la palabra GRUBPASSWORDHASH en el archivo /etc/grub.d/01_users como en el ejemplo anterior.
«superusers» es mágico, y a partir de ese momento todo deberá estar protegido por contraseña excepto el arranque de las entradas predeterminadas.
Usando los modos gráficos antiguos en el gestor de arranque
El dispositivo terminal es elegido con GRUB_TERMINAL; cita adicional en http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration
Los nombres válidos para la terminal de salida dependen de la plataforma, pero pueden incluir ‘console’ (consolas de PC BIOS y EFI), ‘serial’ (terminal serial), ‘gfxterm’ (modo de salida de gráficos), ‘ofconsole’ (consola de Open Firmware) o ‘vga_text’ (salida VGA de texto, útil sobre todo con Coreboot).
El valor predeterminado es utilizar la terminal de salida nativa de las plataformas.
El valor por defecto en Fedora es gfxterm y para obtener los modos de gráficos heredados necesita establecer en GRUB_TERMINAL la variable adecuada de la descripción de arriba en /etc/defaults/grub
Activar la consola serial en Grub
Para activar la consola Serial en grub añadir las siguientes entradas a /etc/default/grub
(Ajustar la tasa de baudios/paridad/bits/control de flujo para adaptarse a su entorno y cables)
GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,115200n8' GRUB_TERMINAL=serial GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
Y vuelva a generar grub
grub2-mkconfig -o /boot/grub2/grub.cfg
Para seguir leyendo
http://www.gnu.org/software/grub/manual/grub.html
http://fedoraproject.org/wiki/Features/Grub2
http://fedoraproject.org/wiki/Anaconda/Features/Grub2Migration