Configurar el cargador de arranque

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Installation/Bootloader and the translation is 100% complete.
Manual AMD64
Full/Installation
Acerca de la instalación
Elegir los medios
Configurar la red
Preparar los discos
Instalar el stage3
Instalar el sistema base
Configurar el núcleo
Configurar el sistema
Instalar las herramientas
Configurar el cargador de arranque
Terminar
Full/Working
Introducción a Portage
Ajustes USE
Características de Portage
Sistema de guiones de inicio
Variables de entorno
Full/Portage
Ficheros y directorios
Variables
Mezclar ramas de software
Herramientas adicionales
Repositorios personalizados de paquetes
Características avanzadas
Full/Networking
Comenzar
Configuración avanzada
Configuración de red modular
Conexión inalámbrica
Añadir funcionalidad
Gestión dinámica


Seleccionar un gestor de arranque

Una vez se haya configurado el núcleo Linux configurado, instalado las herramientas del sistema y editado los ficheros de configuración, es el momento de instalar la última pieza importante de una instalación Linux: cargador de arranque.

El cargador de arranque es el responsable de arrancar el núcleo Linux en el momento del inicio. Sin él, el sistema no sabría cómo proceder cuando se pulsa el botón de encendido.

Para amd64, documentamos cómo configurar bien GRUB o LILO para sistemas basados en BIOS y GRUB o efibootmgr para sistemas UEFI.

En esta sección del Manual se realizó una delimitación entre realizar un emerge del paquete del gestor de arranque e instalar un gestor de arranque en un disco del sistema. Aquí el término emerge será utilizado para pedirle a Portage que instale el paquete para que esté disponible en el sistema. El término install significará la copia de los ficheros del gestor de arranque o la modificación física de las secciones del disco apropiadas para dejar al gestor de arranque activado y listo para operar en el próximo reinicio.

Predeterminado: GRUB

De manera predeterminada, la mayoría de los sistemas Gentoo utilizan GRUB (disponible en el paquete sys-boot/grub), que es el sucesor directo de GRUB Legacy. Sin ninguna configuración adicional, GRUB soporta antiguos sistemas BIOS ("pc"). Con una pequeña configuración, necesaria antes de construir, GRUB puede soportar más de media docena de plataformas adicionales. Para obtener más información, consulte la sección de prerequisitos del artículo sobre GRUB.

Emerge

Cuando se utilice un antiguo sistema con BIOS que soporte solo tablas de particiones MBR, no son necesarias configuraciones extra para realizar un emerge de GRUB:

root #emerge --ask --verbose sys-boot/grub

Una nota para los usuarios de UEFI: Al lanzar la orden de arriba, se mostrarán los valores habilitados de GRUB_PLATFORMS antes de hacer emerge. Cuando se utilicen sistemas con UEFI, los usuarios necesitarán asegurarse de que GRUB_PLATFORMS="efi-64" está habilitado (ya que es el caso por defecto). Si ese no es el caso para la configuración, se necesitará añadir GRUB_PLATFORMS="efi-64" al fichero /etc/portage/make.conf antes de hacer emerge de GRUB de modo que el paquete se construya con funcionalidad EFI:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub
Si se realizó emerge de GRUB sin habilitar previamente GRUB_PLATFORMS="efi-64", se puede añadir esta línea la línea (tal y como se muestra arriba) a make.conf y se pueden recalcular las dependencias para el conjunto de paquetes world pasando las opciones --update --newuse a emerge:
root #emerge --ask --update --newuse --verbose sys-boot/grub

El software GRUB está ahora disponible en el sistema, pero no se ha instalado aún.

Instalación

A continuación, instalar los archivos necesarios de GRUB en el directorio /boot/grub/ mediante la orden grub-install. Se supone que el primer disco (desde el que se inicia el sistema) es /dev/sda alguna de las órdenes siguientes lo hará:

  • Cuando se utiliza BIOS:
root #grub-install /dev/sda
  • Cuando se utilice UEFI:
Importante
Asegúrese de que la partición EFI de sistema está montada antes de lanzar grub-install. Es posible que grub-install instale el fichero GRUB para EFI (grubx64.efi) en el directorio incorrecto sin ofrecer ningún tipo de indicación de que se ha utilizado el directorio incorrecto.
root #grub-install --target=x86_64-efi --efi-directory=/boot
Nota
Modificar la opción --efi-directory al raíz de la partición de sistema EFI. Esto es necesario si la no se formateó la partición /boot con una variante de FAT.
Importante
Si grub-install devuelve un error como Could not prepare Boot variable: Read-only file system, puede que sea necesario montar de nuevo el punto de montaje especial efivars en modo lectura y escritura para poder continuar:
root #mount -o remount,rw /sys/firmware/efi/efivars

Algunos fabricantes de placas base, ofrecen soporte úncamente a localizar el fichero .EFI en el directorio /efi/boot/ dentro de la partición de sistema EFI (ESP). El instalador GRUB puede hacer esta operación de forma automática si se utiliza la opción --removable. Verificar que la ESP está montada antes de lanzar las siguientes órdenes. Asumiendo que la ESP está montada en /boot/efi (como se sugirió antes), lanzar:

root #grub-install --target=x86_64-efi --efi-directory=/boot --removable

Esto crea el directorio por defecto definido por la especificación UEFI y a continuación copia el fichero grubx64.efi a la localización EFI 'por defecto' definida en la misma especificación.

Configuración

A continuación, generar la configuración de GRUB basada en la configuración de usuario especificado en el archivo /etc/default/grub y en los guiones /etc/grub.d. En la mayoría de los casos, no se necesita ninguna configuración por parte de los usuarios ya que GRUB detectará automáticamente el núcleo que debe iniciar (la versión más alta disponible en /boot/) y cuál es el sistema de ficheros raíz. También es posible añadir argumentos del núcleo en /etc/default/grub mediante la variable GRUB_CMDLINE_LINUX.

Para generar la configuración final de GRUB, lance la orden grub-mkconfig:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-6.1.38-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-6.1.38-gentoo
done

La salida de la orden debe mostrar que se ha encontrado al menos una imagen de Linux, como las que son necesarias para arrancar el sistema. Si se utiliza un initramfs o se utilizó genkernel para construir el núcleo, la imagen correcta initrd debería poder detectarse de esta forma. Si no es el caso, hay que ir a /boot/ y comprobar los contenidos mediante la orden ls. Si los archivos no están, se debe regresar a la configuración del núcleo y a las instrucciones de instalación.

Consejo
La utilidad os-prober en conjunto con GRUB para detectar otros sistemas operativos en los discos conectados. Windows 7, 8.1, 10 y otras distribuciones de Linux son detectables. Para esto escenarios de doble booteo debes hacer un emerge del paquete sys-boot/os-prober y luego volver a ejecutar grub-mkconfig (como se muestra arriba). Si se encuentran problemas en la detección, asegúrate de leer el artículo de GRUB entero antes de pedir soporte a la comunidad de Gentoo.

Alternativa 1: LILO

Emerge

LILO, el LInuxLOader (Cargador de Linux), está de sobra probado y es el verdadero caballo de batalla de los cargadores de arranque de Linux. Sin embargo, carece de algunas características que posee GRUB. La razón por la que LILO aún se utiliza es que, en algunos sistemas, GRUB no funciona y LILO sí. Por supuesto, también se sigue utilizando debido a que algunas personas lo conocen bien y quieren seguir utilizándolo. De cualquier formar, Gentoo ofrece soporte a ambos.

Instalar LILO es muy fácil, sencillamente utilice emerge.

root #emerge --ask sys-boot/lilo

Configurar

Para configurar LILO, en primer lugar se debe crear /etc/lilo.conf:

root #nano -w /etc/lilo.conf

En el archivo de configuración, las secciones se utilizan para referirse al núcleo arrancable. Asegúrese de que conoce los archivos del núcleo (incluyendo su versión) y los archivos initramfs, ya que se necesita hacer referencia a ellos es el fichero de configuración.

Nota
Si el sistema de fichero raíz es JFS, agregue una línea append="ro" después de cada elemento de arranque ya que JFS necesita reproducir su registro antes de permitir el montaje en modo lectura y escritura.
ARCHIVO /etc/lilo.confEjemplo de fichero de configuración de LILO
'"`UNIQ--pre-00000002-QINU`"'
Nota
Si se utiliza un esquema de particionamiento diferente o se utiliza una imagen del núcleo, se deberá ajustar adecuadamente..

Si se necesita un initramfs, se debe cambiar la configuración haciendo referencia al fichero initramfs e indicar al initramfs donde se encuentra el dispositivo raíz:

ARCHIVO /etc/lilo.confAñadir información de initramfs a una entrada del menú de inicio
'"`UNIQ--pre-00000005-QINU`"'

Si se necesitan pasar opciones adicionales al núcleo, utilice una sentencia append. Por ejemplo, añada la sentencia video para habilitar el framebuffer:

ARCHIVO /etc/lilo.confAñadir el parámetro video a las opciones de inicio
'"`UNIQ--pre-00000008-QINU`"'

Los usuarios que utilizan genkernel deberían saber que sus núcleos utilizan las mismas opciones de arranque que el CD de instalación. Por ejemplo, si se necesita ofrecer soporte para dispositivos SCSI añada doscsi como opción del núcleo.

Ahora, guarde el archivo y salga.

Instalación

Para terminar, lance /sbin/lilo de modo que LILO pueda aplicar los ajustes definidos en /etc/lilo.conf al sistema (esto es, instalarse a sí mismo en el disco). Recuerde que se necesita lanzar /sbin/lilo cada vez que se ha instalado un nuevo núcleo o se ha realizado un cambio al fichero lilo.conf para reiniciar el sistema si se ha cambiado el nombre del fichero que contiene el núcleo.

root #/sbin/lilo

Alternativa 2: efibootmgr

En los sistemas basados en UEFI, el firmware UEFI del sistema (en otras palabras, el cargador de arranque primario) de puede manipular directamente para que busque entradas de arranque UEFI. Estos sistemas no necesitan tener cargadores de arranque (también conocidos como secundarios) como GRUB para ayudar a iniciar el sistema. Una vez dicho esto, la razón por la que existen cargadores basados en EFI como GRUB es para extender la funcionalidad de los sistemas UEFI durante el proceso de arranque. El uso de efibootmgr está realmente enfocado en aquéllos que desean mantener un enfoque minimalista (aunque más rígido) en el arranque de sus sistemas. El uso de GRUB2 (ver arriba) es más fácil para la mayoría de los usuarios ya que ofrece un enfoque flexible cuando se inician sistemas UEFI.

Recuerde que la aplicación sys-boot/efibootmgr no es un cargador de arranque, es una herramienta para interactuar con el firmware UEFI y actualizar su configuración, de modo que núcleo Linux que se instaló previamente se puede arrancar con opciones adicionales (si es necesario) o también para permitir múltiples entradas de arranque. Esta interacción se realiza a través de variables EFI (de ahí la necesidad de soporte para el núcleo de variables EFI).

Asegúrese de leer el artículo del núcleo EFI stub antes de continuar. El núcleo debe tener opciones específicas habilitadas para que pueda ser iniciado directamente por el firmware UEFI del sistema firmware. Puede que sea necesario recompilar el núcleo. También es buena idea echar un vistazo al artículo efibootmgr/es.

Nota
Insisitimos en que efibootmgr no es un requisito para arrancar un sistema UEFI. Se puede arrancar el núcleo Linux de forma inmediata y se pueden construir opciones de línea de órdenes del núcleo en el propio núcleo Linux (hay una opción de configuración del núcleo llamada CONFIG_CMDLINE que permite al usuario especificar los parámetros de arranque como opciones de la línea de órdenes). Incluso se puede 'construir' un sistema de ficheros initramfs en el propio núcleo.

Los que opten por este enfoque deben instalar el software:

root #emerge --ask sys-boot/efibootmgr

A continuación crear la localización /boot/efi/boot/ y copiar el núcleo en esta localización llamándolo bzImage.efi:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bzImage.efi

A continuación, indíquele al firmware UEFI que se va a crear una entrada en el menú de inicio llamada "Gentoo" que tiene el nuevo núcleo compilado para EFI:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bzImage.efi"

Si se utiliza un sistema de ficheros de inicio en RAM (initramfs), añadir la opción de arranque apropiada:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bzImage.efi" initrd='\initramfs-genkernel-amd64-6.1.38-gentoo'
Nota
El uso de \ como separador de directorios es obligatorio cuando se utilizan las definiciones UEFI.

Una vez realizados estos cambios, cuando el sistema se reinicie, aparecerá una entrada en el menú de inicio llamada "Gentoo".

Alternativa 3: Syslinux

Syslinux es otro cargador de arranque alternativo para la arquitectura amd64. Ofrece soporte para MBR y en su versión 6.00 también ofrece soporte para arranque EFI. El arranque PXE (a través de la red) y otras opciones menos conocidas también están soportadas. Aunque Syslinux es un cargador de arranque popular para muchos, en el manual no se ofrece soporte para él. Los lectores pueden encontrar información acerca de cómo hacer emerge del paquete e instalarlo a continuación en el artículo de Syslinux.


Reiniciar el sistema

Salga del entorno chroot y desmonte todas las particiones que continúen montadas. Luego escriba la orden mágica da inicio a la auténtica prueba final: reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

Por supuesto, no olvide quitar el CD arrancable, o podría arrancar de nuevo el CD en lugar de su nuevo sistema Gentoo.

Una haya reiniciado en su recien instalado entorno Gentoo, termine con Finalizar la instalación de Gentoo.