El Gestor de Arranque GRUB2 – Instalación y Configuración
GRUB2 es la última versión de GNU GRUB, GRand Unified Bootloader. Un gestor de arranque es el primer programa de software que corre cuando se arranca un ordenador. Es el responsable de la carga y la transferencia de control al kernel del sistema operativo. En Fedora, el kernel es Linux. El kernel arranca después el resto del sistema operativo.
GRUB2 es el continuador de la versión anterior de GRUB (versión 0.9x). La versión original está disponible bajo el nombre de GRUB Legacy.
Desde Fedora 16, GRUB2 ha sido el gestor de arranque predeterminado en sistemas x86 BIOS. Para las actualizaciones de los sistemas BIOS lo predeterminado es instalar también GRUB2, pero puede optar por omitir por completo la configuración del gestor de arranque.
Descubrir el tipo de firmware
Para descubrir que firmware usa su máquina, ejecute el siguiente comando:
$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
La salida devuelve solo UEFI o BIOS, dependiendo del firmware que corra en su máquina.
Instalar GRUB2 en un sistema BIOS
Normalmente, GRUB2 será instalado y configurado por el instalador, Anaconda, durante el proceso de instalación. Probablemente nunca tenga que tratar con una instalación manual de GRUB2. Sin embargo, en ciertas situaciones, deseará instalar GRUB2 manualmente, especialmente si necesita reparar la instalación de GRUB2 existente o desea cambiar su configuración.
Este procedimiento muestra los pasos para instalar GRUB2 en el Master Boot Record (MBR) de su disco duro principal.
-
Compruebe que tienen los paquetes GRUB2 y el paquete os-prober instalados en su sistema.
$ dnf list installed | grep grub -
Para recoger automáticamente información sobre sus discos y los sistemas operativos instalados en ellos, necesita que el paquete
os-proberesté instalado en su sistema.
-
Liste los dispositivos de bloques disponibles en su sistema.
$ lsblk -
Identifique el disco duro primario. Usualmente, es el dispositivo
sda. -
Instalar GRUB2 en el MBR del disco duro principal.
$ sudo grub2-install /dev/sda -
Crear un archivo de configuración para GRUB2.
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Reinicie su equipo con el gestor de arranque recientemente instalado.
-
El comando
grub2-mkconfigcrea una nueva configuración en base al sistema que se está ejecutando actualmente. Recoge información de la partición/boot(o directorio), del archivo`/etc/default/grub` y de los guiones personalizables en/etc/grub.d. -
El formato de configuración cambia con el tiempo y un archivo nuevo puede llegar a ser ligeramente incompatible con las versiones más antiguas del gestor de arranque. Ejecute siempre
grub2-installantes de crear el archivo de configuración congrub2-mkconfig. -
En Fedora, es generalmente seguro editar
/boot/grub2/grub.cfgmanualmente. Grubby en Fedora parchea la configuración cuando se actualiza el kernel e intentará no hacer más cambios de los estrictamente necesarios. Los cambios manuales se pueden anular congrub2-mkconfigcuando el sistema se actualiza con Anaconda. Las personalizaciones situadas en los archivos/etc/grub.d/40_customo/boot/grub2/custom.cfgsobrevivirán ejecutando el comandogrub2-mkconfig.
Instalar GRUB2 en un sistema UEFI
Normalmente, GRUB2 será instalado y configurado por el instalador, Anaconda, durante el proceso de instalación. Probablemente nunca tenga que tratar con una instalación manual de GRUB2. Sin embargo, en ciertas situaciones, deseará instalar GRUB2 manualmente, especialmente si necesita reparar la instalación de GRUB2 existente o desea cambiar su configuración.
Este procedimiento muestra los pasos para instalar GRUB2 en un sistema UEFI sobre Fedora 18 o posteriores. El procedimiento consta de cuatro partes.
Crear una Partición EFI en el Sistema
El firmware UEFI requiere arrancar desde una Partición de Sistema EFI en un disco con una etiqueta GPT. Para crear dicha partición:
-
Enumere los dispositivos de bloque para encontrar un lugar para crear su ESP.
$ lsblk -f -p -
Cree una partición de al menos 128 Mb usando una etiqueta GPT en el disco duro primario.
$ sudo gdisk /dev/sdaPara este procedimiento asumimos que la partición creada se reconoce como
/dev/sda1. -
Dele formato a la partición con el sistema de archivos FAT32.
$ sudo mkfs.vfat /dev/sda1 -
Cree el directorio
/boot/eficomo punto de montaje de la partición nueva.$ sudo mkdir /boot/efi -
Monte la partición en el punto de montaje
/boot/efi.$ sudo mount /dev/sda1 /boot/efi -
Procede a la siguiente parte.
Instalar los archivos del cargador de arranque
Con el fin de usar GRUB2 con sistemas UEFI, necesita instalar los paquetes necesarios:
-
Reinstalar los paquetes necesarios.
$ sudo dnf reinstall grub2-efi grub2-efi-modules shim-\* -
Si el comando de arriba termina con un error, instale los paquetes.
$ sudo dnf install grub2-efi grub2-efi-modules shim-\*
-
Esto instala el shim firmado y el GRUB2 binario.
Crear una configuración GRUB2
Si ya tiene funcionando un archivo de configuración GRUB2 EFI, no necesita hacer nada más.
Si no es así, cree el archivo de configuración usando el comando grub2-mkconfig.
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
Bajo EFI, GRUB2 busca su configuración en
/boot/efi/EFI/fedora/grub.cfg, sin embargo el script postinstall degrub2-commoninstala una pequeña cuña la cual encadena a la configuración estándar en/boot/grub2/grub.cfglo cual es generado arriba. Para restablecer esta cuña a lo predeterminado, borra el/boot/efi/EFI/fedora/grub.cfg`y ejecuta después reinstala `grub2-common.$ sudo rm -f /boot/efi/EFI/fedora/grub.cfg $ sudo dnf reinstall grub2-common -
Para que funcionen los kernel instalados recientemente,
grubbyespera que/etc/grub2-efi.cfgsea un enlace simbólico algrub.cfgreal (por ejemplo/boot/grub2/grub.cfg).
Resolver problemas con el cargador de arranque UEFI
Cuando encienda su sistema, su firmware buscará las variables EFI que le digan como arrancar. En sistemas en ejecución, los cuales han sido arrancados en modo EFI y sus servicios de tiempo de ejecución EFI están funcionando correctamente, puede configurar su menú de arranque con efibootmgr.
If not, shim can help you bootstrap. The EFI fallback program at /boot/efi/EFI/BOOT/fbx64.efi will look for files called BOOT.CSV in your ESP and will add boot entries corresponding to them. The shim command provides its own BOOT.CSV file that will add an entry for grub2-efi.
|
The EFI fallback program was originally named |
During the boot process, you can use the EFI Shell to invoke the fbx64.efi profile to boot the system:
-
Introduzca la partición de arranque.
> fs0: -
Vaya al directorio
EFI\BOOT.> cd EFI\BOOT -
Invoke the
fbx64.efiprofile.> fbx64.efi
-
If you have no boot entries at all, then just booting off your disk in UEFI mode should automatically invoke
/boot/efi/EFI/BOOT/BOOTX64.EFI, which will, in turn, invokefbx64.efi. -
Si ya tienen apuntes de arranque incorrectos, necesitará borrarlas o modificar
BOOT.CSVpara crear apuntes nuevos con nombres diferentes.
Añadir otros sistemas operativo al menú GRUB2
Normalmente, GRUB2 está preestablecido para arrancar múltiples sistemas operativos durante el proceso de instalación de Fedora. Si puede, es aconsejable instalar los sistemas operativos distintos a Linux primero. Después, durante el proceso de instalación, todos esos sistemas operativos serán descubiertos y fijados apropiadamente.
Agregar otro registro al menú de GRUB2 solo significa ejecutar el comando grub2-mkconfig para regenerar los archivos de configuración. Durante este proceso, todos los sistemas operativos conocidos en el sistema se añadirán al archivo de configuración. Al reinstalar GRUB2 se usará esta configuración para futuros arranques.
-
Compruebe que los sistemas de archivos están en el disco conectado al sistema.
-
Tiene instalado el paquete
os-prober.
-
Vuelva a crear el archivo de configuración GRUB2.
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Instalar GRUB2.
-
En sistemas UEFI.
$ sudo dnf reinstall shim-\* grub2-efi-\* grub2-common -
En sistemas BIOS, especifique el disco donde debería ser instalado el gestor de arranque.
$ sudo grub2-install /dev/sda
-
-
El comando
grub2-mkconfigañadirá entradas para todos los sistemas operativos que pueda encontrar. -
Cuando aparezcan problemas, vea el Manual de GRUB para resolver incidencias con el arranque de los sistemas operativos secundarios.
Configuración de la entrada predeterminada para GRUB2
Puesto que grub2-mkconfig (y os-prober) no puede estimar que sistema operativo, de aquellos que encuentra, está marcado como predeterminado, normalmente somos incapaces de predecir el orden de las entradas en /boot/grub2/grub.cfg. Para cambiar el esquema predeterminado, necesitamos establecer el predeterminado en base del name o title.
-
Abra
/etc/default/gruby compruebe que existen estas líneas en el archivo.GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=false -
Si necesita cambiar el contenido de
/etc/default/grub, aplique los cambios agrub.cfg.$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
-
Liste todas las posibles entradas del menú.
$ grep -P "^menuentry" /boot/grub2/grub.cfg | cut -d "'" -f2 -
Seleccione una de las opciones mostradas y úsela como argumento para establecer la entrada predeterminada del menú.
$ sudo grub2-set-default <menuentry> -
Verifique la entrada predeterminada del menú
$ grub2-editenv - list -
Regenere el archivo de configuración de GRUB2 y vuelva a instalar el gestor de arranque en el MBR, como se describe el Añadir otros sistemas operativos al menú GRUB2.
Si comprende los riesgos involucrados, puede modificar manualmente el archivo /boot/grub2/grub.cfg. En este caso, fije el número del sistema operativo predeterminado usando la variable set default.
Por ejemplo:
set default="5"
|
Si edita manualmente el archivo de configuración, los ajustes serán anulados cada vez que ejecute el comando |
Restaurar el gestor de arranque usando el disco Live
Algunas veces, especialmente tras haber sido instalado un sistema operativo secundario, el registro maestro de arranque resulta dañado lo cual evita que el sistema Linux original arranque.
Si esto sucede, es necesario reinstalar GRUB2 para volver a crear los ajustes originales. El proceso no solo descubre todos los sistemas operativos instalados, sino que también los añade a los archivos de configuración de GRUB2, de modo que puedan arrancar desde GRUB2.
-
Obtenga el Fedora Live ISO desde fedoraproject.org.
-
Prepare un dispositivo de arranque usando el ISO descargado, un CD o un USB.
-
Arranque un sistema vivo Fedora desde el dispositivo de arranque que haya creado.
-
Abra el terminal.
-
Examine el esquema de partición e identifique la partición`/boot` y la
/root.$ lsblk -f -p -
Si su partición
/rootestá encriptada por LUKS, se debe quitar la encriptación.-
Compruebe que el módulo crypt está en uso.
$ sudo modprobe dm-crypt -
Quite la encriptación de la partición
/root(p.ej./dev/sda3).$ sudo cryptsetup luksOpen /dev/sda3 myvolumeEl dispositivo descifrado (p.e.
myvolume) será accesible bajo/dev/mapper.
-
-
Siga los casos de BTRFS (utilizados por defecto en Fedora 33 o posterior).
-
Monte la partición
/root.-
Para LUKS.
$ sudo mount /dev/mapper/myvolume /mnt -o subvol=root -
Para no LUKS.
$ sudo mount /dev/sda3 /mnt -o subvol=root
-
-
-
Siga los pasos LVM (utilizado de forma predeterminada antes de Fedora 33).
-
Escanee los volúmenes LVM en busca del grupo de volumen correspondiente a la partición
/root.$ sudo vgscan -
Active el grupo de volumen (p.ej.
fedora).$ sudo vgchange -ay fedora -
Encuentre el volumen lógico correspondiente a
/root.$ sudo lvsEl volumen lógico será accesible bajo
/dev/mapper. -
Monte el volumen lógico (p.ej.
/dev/mapper/fedora-root) correspondiente a la partición/root.$ sudo mount /dev/mapper/fedora-root /mnt
-
-
Monte la partición
/boot(por ejemplo/dev/sda2).$ sudo mount /dev/sda2 /mnt/boot -
Monte los procesos y dispositivos del sistema en el sistema de archivos
/root.$ sudo mount -o bind /dev /mnt/dev $ sudo mount -o bind /proc /mnt/proc $ sudo mount -o bind /sys /mnt/sys $ sudo mount -o bind /run /mnt/run $ sudo mount -o bind /dev/pts /mnt/dev/pts -
En sistemas UEFI, una el directorio
efivarsy monte la partición del sistema EFI (por ejemplo,/dev/sda1).$ sudo mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars $ sudo mount /dev/sda1 /mnt/boot/efi -
Cambie su sistema de archivos a uno montado bajo
/mnt.$ sudo chroot /mnt -
Vuelva a instalar GRUB2.
-
En sistemas UEFI, se requieren diversos paquetes.
$ sudo dnf reinstall shim-\* grub2-efi-\* grub2-common -
En sistemas BIOS, especifique el disco (por ejemplo,
/dev/sda) donde debería ser instalado GRUB2.$ sudo grub2-install /dev/sda
-
-
Vuelva a generar el archivo de configuración de GRUB2.
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg -
Sincronice y salga de chroot.
$ sync && exit -
Reinicie el sistema.
Usar el indicador de arranque de GRUB2
Si no está apropiadamente configurado, GRUB2 puede fallar en la carga y consecuentemente caer a un indicador de arranque. Para arrancar en el sistema, siga los siguientes pasos.
-
Cargue los módulos necesarios para leer las particiones del sistema (usted necesitará cargar también
part_msdosopart_gpt, dependiendo de su tabla de partición).-
Para sistemas de archivos BTRFS (Fedora 33 o posterior).
grub> insmod btrfs -
Para sistemas de archivos LVM (anteriores a Fedora 33).
grub> insmod xfs grub> insmod lvm
-
-
Liste los dispositivos que ve GRUB2.
grub> ls -
Examine la salida para entender la tabla de partición del dispositivo
/dev/sda. El siguiente ejemplo muestra una tabla de partición DOS con tres particiones.(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)Una tabla de partición GPT del dispositivo
/dev/sdacon cuatro particiones podría parecerse a esto.(hd0) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) -
Sondee cada partición del dispositivo y localice sus archivos
vmlinuzeinitramfs.grub> ls (hd0,1)/El resultado del comando anterior listará los archivos en
/dev/sda1. La partición que contiene el directorio/bootes la correcta. Allí encontrará los nombres completos de los archivosvmlinuzeinitramfs. -
Siga la configuración previa al arranque para BTRFS o la configuración <lvm-boot-setup, previa al arranque para LVM>> para recuperar su sistema.
-
Después de la configuración previa al arranque, arranque el sistema.
grub> boot -
Para recuperar la funcionalidad del gestor de arranque, regenere el archivo de configuración de GRUB2 y vuelva a instalar el gestor de arranque como se describe en Añadir otro sistema operativo al menú de GRUB2.
Configuración previa al arranque para sistemas de archivos BTRFS
-
En sistemas BIOS.
-
Establezca la raíz de GRUB2 en su partición
/boot. Sí su partición/bootes(hd0,msdos1), el comando será.grub> set root=(hd0,msdos1) -
A continuación, seleccione el kernel deseado. Establezca la partición
/root(p.ej./dev/sda2).grub> linux /vmlinuz-5.14.10-300.fc35.x86_64 root=/dev/sda2 ro rootflags=subvol=root
-
-
En sistemas UEFI.
-
Establezca la raíz GRUB2 en su partición EFI del sistema. Si su partición EFI del sistema es
(hd0,gpt1), use este comando.grub> set root=(hd0,gpt1) -
A continuación, seleccione el kernel deseado. Encuentre la ruta a
vmlinuzy establezca la partición/root(p.ej./dev/sda3).grub> linux (hd0,gpt2)/vmlinuz-5.14.10-300.fc35.x86_64 root=/dev/sda3 ro rootflags=subvol=root -
Seleccione el sistema de archivos RAM que será cargado.
grub> initrd (hd0,gpt2)/initramfs-5.14.10-300.fc35.x86_64.img
-
Configuración previa al arranque para sistemas de archivos LVM
-
En sistemas BIOS.
-
Establezca la raíz GRUB2 a su partición
/boot. Si su partición/bootes(hd0,msdos1), use este comando.grub> set root=(hd0,msdos1) -
A continuación, seleccione el kernel deseado. Establezca
rootal volumen lógico que corresponde al directorio/root.grub> linux /vmlinuz-3.0.0-1.fc16.i686 root=/dev/mapper/fedora-root -
Seleccione el sistema de archivos RAM que será cargado.
grub> initrd /initramfs-3.0.0-1.fc16.i686.img
-
-
En sistemas UEFI.
-
Establezca la raíz GRUB2 en su partición EFI del sistema. Si su partición EFI del sistema es
(hd0,gpt1), use este comando.set root=(hd0,gpt1) -
A continuación, seleccione el kernel deseado. Encuentre la ruta a
vmlinuzy establezcarootal volumen lógico que corresponda al directorio/root.linux (hd0,gpt2)/vmlinuz-3.0.0-1.fc16.i686 root=/dev/mapper/fedora-root -
Seleccione el sistema de archivos RAM que será cargado.
initrd (hd0,gpt2)/initramfs-3.0.0-1.fc16.i686.img
-
Arrancar el sistema usando un archivo de configuración en una partición diferente
Sí termina en el indicador de inicio de GRUB2, también es posible arrancar usando un configfile que esté ubicado en otra partición, como es el caso con frecuencia en sistemas de múltiple arranque que contienen Ubuntu y Fedora. Siga el procedimiento de abajo si necesita arrancar desde un archivo de configuración en una partición diferente.
-
Cargue los módulos necesarios para leer las particiones del sistema (usted necesitará cargar también
part_msdosopart_gpt, dependiendo de su tabla de partición).-
Para sistemas de archivos BTRFS.
grub> insmod btrfs -
Para sistemas de archivos LVM.
grub> insmod xfs grub> insmod lvm
-
-
Establezca la raíz de GRUB2 a su partición
/boot. En sistemas UEFI, debería establecer la raíz de GRUB2 a la partición EFI del sistema.grub> set root=(hd0,msdos1) -
Establezca la ruta al archivo de configuración.
grub> configfile /grub2/grub.cfg
-
La línea hd0,msdos1 muestra la partición
/bootpertinente, que acoge al archivogrub.cfg. El ajuste puede ser diferente en su sistema. Vea también más información en Usar el indicador de arranque GRUB2.
Establecer una contraseña para el modo de edición interactivo
Si desea proteger el modo de edición interactivo de GRUB2 con una contraseña, pero permitir los usuarios ordinarios arrancar el ordenador, utilice el comando grub2-set-password. Deberá proporcionar la contraseña y confirmarla posteriormente. La contraseña cifrada será almacenada en /boot/grub2/user.cfg.
Para eliminar la protección por contraseña, simplemente elimine el archivo user.cfg.
De forma alternativa, puede realizar esta configuración de forma manual:
-
Cree el archivo
/etc/grub.d/01_usersy escriba la siguientes líneas en el archivo.$ sudo tee /etc/grub.d/01_users << EOF set superusers="root" export superusers password root <password> EOF -
Regenere el archivo de configuración de GRUB2, como se describe en Adding other operating systems to the GRUB2 menu.
Puede cifrar la contraseña usando pbkdf2. Use grub2-mkpasswd-pbkdf2 para cifrar la contraseña, después reemplace la línea de contraseña con:
password_pbkdf2 root grub.pbkdf2.sha512.10000.1B4BD9B60DE889A4C50AA9458C4044CBE129C9607B6231783F7E4E7191D8254C0732F4255178E2677BBE27D03186E44815EEFBAD82737D81C87F5D24313DDDE7.E9AEB53A46A16F30735E2558100D8340049A719474AEEE7E3F44C9C5201E2CA82221DCF2A12C39112A701292BF4AA071EB13E5EC8C8C84CC4B1A83304EA10F74
Para eliminar la protección por contraseña, simplemente elimine los cambios realizados al fichero /etc/grub.d/01_users y regenere el fichero de configuración de GRUB2 como se hizo anteriormente.
Puede encontrar más detalles en Ayuda de Ubuntu: GRUB2 Contraseñas.
|
A partir de Fedora 15, la opción kickstart |
Tratar con el Error "Absent Floppy Disk (Disco Flexible Ausente)"
Se ha informado por parte de algunos usuarios que GRUB2 puede fallar sobre un sector de arranque de partición si el controlador del disco flexible del ordenador está activado en la BIOS sin que haya en el equipo un dispositivo de disco flexible. Dichas situaciones llevan a un error de Absent Floppy Disk (Disco Flexible Ausente).
Para solventar este problema, vaya al modo rescate y siga el procedimiento de Instalar GRUB2 en un sistema BIOS GRUB2, o use la opción --no-floppy con el comando grub2-install.
$ sudo grub2-install <target device> --no-floppy
Usar modos gráficos antiguos en el gestor de arranque
El dispositivo terminal se elige con GRUB_TERMINAL. Para más información, vea el Manual de Grub.
Los nombres válidos de terminal de salida dependen de la plataforma, pero pueden incluir console (consolas PC BIOS y EFIs), serial (terminal serie), gfxterm (salida en modo gráfico),ofconsole (consola Open Firmware) o vga_text (salida de texto VGA, útil principalmente con Coreboot).
Lo predeterminado es usar la salida del terminal nativo de la plataforma.
En Fedora, gfxterm es la opción predeterminada. Para obtener la herencia de los modos gráficos:
-
Edite el archivo`/etc/default/grub`.
-
Establezca la variable
GRUB_TERMINALa una de las opciones mencionadas arriba. -
Regenere el archivo de configuración de GRUB2 y vuelva a instalar el gestor de arranque en el MBR, como se describe el Añadir otros sistemas operativos al menú GRUB2.
Habilitar la Consola Serie en GRUB2
Para habilitar la consola Serie en grub:
-
Edite el archivo`/etc/default/grub`.
-
Ajuste los controles
baudrate,parity,bitsyflowpara que se ajusten a su entorno y cables, vea el ejemplo.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" -
Regenere el archivo de configuración GRUB2 y vuelva a instalar el gestor de arranque en el MBR, como se describe en Añadir otros sistemas operativos al menú GRUB2.
Recursos adicionales
Want to help? Learn how to contribute to Fedora Docs ›