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-prober
esté instalado en su sistema.
-
Liste los dispositivos de bloques disponibles en su sistema.
$ lsblk
Identifique el disco duro principal. Normalmente es el dispositivo sda.
-
Instale GRUB2 en el MBR del disco duro principal..
# grub2-install /dev/sda
-
Cree un archivo de configuración para GRUB2..
# grub2-mkconfig --output=/boot/grub2/grub.cfg
Reinicie su ordenador con el gestor de arranque recientemente instalado.
Más información
-
The
grub2-mkconfig
command creates a new configuration based on the currently running system. It collects information from the/boot
partition (or directory), from the/etc/default/grub
file, and the customizable scripts in/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-install
antes de crear el archivo de configuración congrub2-mkconfig
. -
En Fedora, es generalmente seguro editar
/boot/grub2/grub.cfg
manualmente. 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-mkconfig
cuando el sistema se actualiza con Anaconda. Las personalizaciones situadas en los archivos/etc/grub.d/40_custom
o /boot/grub2/custom.cfg` sobrevivirán ejecutando el comando grub2-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:
-
Liste los dispositivos de bloque para encontrar sitios para situar la ESP que cree..
$ lsblk -f -p
-
Cree una partición de al menos 128 Mb usando una etiqueta GPT en el disco duro principal.
# gdisk /dev/sda
Para este procedimiento asumimos que la partición creada se reconoce como
/dev/sda1
. -
Formatee la partición con el sistema de archivos FAT32.
# mkfs.vfat /dev/sda1
-
Cree el directorio
/boot/efi
como punto de montaje de la nueva partición.# mkdir /boot/efi
-
Monte la partición en el punto de montaje
/boot/efi.
# mount /dev/sda1 /boot/efi
-
Siga con la siguiente parte.
Instalar los archivos del gestor de arranque
Con el objetivo de usar GRUB2 con los sistemas UEFI, necesita instalar o reinstalar los paquetes apropiados:
-
Reinstalar los paquetes necesarios.
# dnf reinstall grub2-efi grub2-efi-modules shim-\*
+
# dnf install grub2-efi grub2-efi-modules shim-\*
Más información
-
Esto instala el shim firmado y el binario GRUB2.
Crear una configuración GRUB2
Si ya tiene trabajando un archivo de configuración GRUB2 EFI no necesita hacer nada de esto.
Si no es así cree el archivo de configuración usando el comando grub2-mkconfig
.
# grub2-mkconfig --output=/boot/grub2/grub.cfg
Más información
-
Under EFI, GRUB2 looks for its configuration in
/boot/efi/EFI/fedora/grub.cfg
, however the postinstall script ofgrub2-common
installs a small shim which chains to the standard configuration at/boot/grub2/grub.cfg
which is generated above. To reset this shim to defaults, delete the existing/boot/efi/EFI/fedora/grub.cfg
and then reinstallgrub2-common
.# rm -f /boot/efi/EFI/fedora/grub.cfg # dnf reinstall grub2-common
-
For newly installed kernels to work,
grubby
expects/etc/grub2-efi.cfg
to be a symlink to the realgrub.cfg
(for example/boot/grub2/grub.cfg
).
Resolver problemas con el gestor de arranque UEFI
Cuando usted enciende su sistema, su firmware buscará las variables EFI que le digan como arrancar. En sistemas en ejecución, que han sido arrancados en modo EFI y sus servicios de tiempo de ejecución y trabajando correctamente, puede configurar su menú de arranque con efibootmgr
.
Si no, shim
puede ayudarte a arrancar. El programa EFI buscará /boot/efi/EFI/BOOT/fallback.efi
archivos llamados BOOT.CSV
en su ESP y añadirá la entradas de arranque correspondiente a ellos. El comando shim
proporciona su propio archivo BOOT.CSV
que añadirá una entrada para grub2-efi
.
Durante el proceso de arranque, puede usar EFI Shell para invocar el perfil fallback.efi
para arrancar el sistema:
-
Introduzca la partición de arranque..
fs0:
-
Vaya al directorio
EFI\BOOT
..> cd EFI\BOOT
-
Llame al perfil
fallback.efi
.> fallback.efi
-
Si no tiene ninguna entrada de inicio, simplemente arrancar su disco en UEFI debería invocar automáticamente a
/boot/efi/EFI/BOOT/BOOTX64.EFI
, que a su vez invocará afallback.efi
. -
Si ya tienen entradas de arranque incorrectas, debería borrarlas o modificar
BOOT.CSV
para crear nuevas entradas 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.
# grub2-mkconfig -o /boot/grub2/grub.cfg
-
Instalar GRUB2.
-
En sistemas UEFI.
# dnf reinstall shim-\* grub2-efi-\* grub2-common
-
En sistemas BIOS, especifique el disco donde debería ser instalado el gestor de arranque.
# grub2-install /dev/sda
-
-
El comando
grub2-mkconfig
añadirá entradas para todos los sistemas operativos que pueda encontrar. -
Cuando aparezcan problemas, vea el Manual de GRUB para resolver los problemas 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/grub
y 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
.# 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ú.
# 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 |
Restoring the bootloader using the Live disk
Algunas veces, especialmente después de que se hayan instalado sistemas operativos secundarios, el registro de arranque maestro tiene daños que evitan 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 GRUB2, de modo que puedan arrancar desde GRUB2.
-
Get the Fedora Live ISO from 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
/root
está encriptada por LUKS, se debe quitar la encriptación.-
Compruebe que el módulo crypt está en uso.
# modprobe dm-crypt
-
Quite la encriptación de la partición
/root
(p.ej./dev/sda3
).# cryptsetup luksOpen /dev/sda3 myvolume
The decrypted device (i.e.
myvolume
) will be accessible under/dev/mapper
.
-
-
Follow the BTRFS steps (used by default in Fedora 33 or newer).
-
Monte la partición
/root
.-
Para LUKS.
# mount /dev/mapper/myvolume /mnt -o subvol=root
-
Para no LUKS.
# mount /dev/sda3 /mnt -o subvol=root
-
-
-
Follow the LVM steps (used by default before Fedora 33).
-
Escanee los volúmenes LVM en busca del grupo de volumen correspondiente a la partición
/root
.# vgscan
-
Activate the volume group (e.g.
fedora
).# vgchange -ay fedora
-
Encuentre el volumen lógico correspondiente a
/root
.# lvs
The logical volume will be accessible under
/dev/mapper
. -
Mount the logical volume (e.g.
/dev/mapper/fedora-root
) corresponding to the/root
partition.# mount /dev/mapper/fedora-root /mnt
-
-
Monte la partición
/boot
(por ejemplo/dev/sda2)
.# mount /dev/sda2 /mnt/boot
-
Monte los procesos y dispositivos del sistema en el sistema de archivos
/root
.# mount -o bind /dev /mnt/dev # mount -o bind /proc /mnt/proc # mount -o bind /sys /mnt/sys # mount -o bind /run /mnt/run
-
En sistemas UEFI, una el directorio
efivars
y monte la partición del sistema EFI (por ejemplo,/dev/sda1
).# mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars # mount /dev/sda1 /mnt/boot/efi
-
Change your filesystem to the one mounted under
/mnt
.# chroot /mnt
-
Vuelva a instalar GRUB2.
-
En sistemas UEFI, se requieren diversos paquetes.
# dnf reinstall shim-\* grub2-efi-\* grub2-common
-
En sistemas BIOS, especifique el disco (por ejemplo,
/dev/sda
) donde debería ser instalado GRUB2.# grub2-install /dev/sda
-
-
Vuelva a generar el archivo de configuración de GRUB2.
# 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_msdos
opart_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/sda
con 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
vmlinuz
einitramfs
.grub> ls (hd0,1)/
El resultado del comando anterior listará los archivos en
/dev/sda1
. La partición que contiene el directorio/boot
es la correcta. Allí encontrará los nombres completos de los archivosvmlinuz
einitramfs
. -
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.
Pre-boot setup for BTRFS filesystems
-
En sistemas BIOS.
-
Establezca la raíz de GRUB2 en su partición
/boot
. Sí su partición/boot
es(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
vmlinuz
y 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
-
Pre-boot setup for LVM filesystems
-
En sistemas BIOS.
-
Establezca la raíz GRUB2 a su partición
/boot
. Si su partición/boot
es(hd0,msdos1)
, use este comando.grub> set root=(hd0,msdos1)
-
A continuación, seleccione el kernel deseado. Establezca
root
al 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
vmlinuz
y establezcaroot
al 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
-
Booting the system using a configuration file on a different partition
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_msdos
opart_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
/boot
pertinente, 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 encriptada 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_users
y escriba la siguientes líneas en el archivo.cat << EOF set superusers="root" export superusers password root <password> EOF
-
Regenere el archivo de configuración de GRUB2, como se describe en Añadir otros sistemas operativos al menú de GRUB2.
Puede encriptar la contraseña usando pbkdf2. Use grub2-mkpasswd-pbkdf2
para encriptar 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
.
# 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_TERMINAL
a 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
,bits
yflow
para 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 ›