Configurar el cargador de arranque

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Installation/Bootloader and the translation is 100% complete.

Other languages:
čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎
AMD64 Manual
Instalación
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
Trabajar con Gentoo
Introducción a Portage
Ajustes USE
Características de Portage
Sistema de guiones de inicio
Variables de entorno
Trabajar con Portage
Ficheros y directorios
Variables
Mezclar ramas de software
Herramientas adicionales
Repositorios personalizados de paquetes
Características avanzadas
Configuración de la red
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 GRUB2 o LILO para sistemas basados en BIOS y GRUB2 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: GRUB2

Anteriormente, Gentoo Linux recomendaba como cargador de arranque lo que ahora se llama GRUB Legacy. Tal y como indica el nombre, este paquete antiguo de GRUB ya no se mantiene y ha sido sustituido por GRUB2. Para más información sobre el legado de GRUB, por favor, eche un vistazo al artículo de GRUB.

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

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:2

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 GRUB2 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:2
Si se realizó emerge de GRUB2 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 recalcularán las dependencias para el conjunto de paquetes world pasando las opciones --update --newuse a emerge:
root #emerge --ask --update --newuse --verbose sys-boot/grub:2

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

Instalación

A continuación, instalar los archivos necesarios de GRUB2 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
If grub_install returns an error like Could not prepare Boot variable: Read-only file system, it may be necessary to remount the efivars special mount as read-write in order to succeed:
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 GRUB2 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 GRUB2 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 GRUB2, lance la orden grub-mkconfig:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.5-gentoo
Found initrd image: /boot/initramfs-genkernel-amd64-3.16.5-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.

Tip
La utilidad os-prober en conjunto con GRUB2 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 GRUB2 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
boot=/dev/sda             # Instalar LILO en el MBR
prompt                    # Dar al usuario la posibilidad de seleccionar otra sección
timeout=50                # Esperar 5 (cinco) segundos antes de iniciar la sección por defecto
default=gentoo            # Cuando venza el plazo arrancar la sección "gentoo"
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo            # El nombre que se le da a esta sección
  read-only               # Comenzar con un raíz en modo solo lectura. ¡No modificar esta parte!
  root=/dev/sda4          # Localización del sistema de ficheros raíz
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo.rescue     # El nombre que se le da a esta sección
  read-only               # Comenzar con un raíz en modo solo lectura. ¡No modificar esta parte!
  root=/dev/sda4         # Localización del sistema de ficheros raíz
  append="init=/bin/bb"   # Lanzar el intérprete de comandos estático de rescate de Gentoo
  
# Las dos líneas siguientes se necesitan únicamente si se realiza arranque dual con un sistema Windows.
# En este ejemplo Windows se aloja en /dev/sda6.
other=/dev/sda6
  label=windows
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
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  append="root=/dev/sda4"
  initrd=/boot/initramfs-genkernel-amd64-3.16.5-gentoo

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
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  root=/dev/sda4
  append="video=uvesafb:mtrr,ywrap,1024x768-32@85"

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 GRUB2 para ayudar a iniciar el sistema. Una vez dicho esto, la razón por la que existen cargadores basados en EFI como GRUB2 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 rigido) 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 EFI stub kernel 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 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 bootx64.efi:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bootx64.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\bootx64.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\bootx64.efi" initrd='\initramfs-genkernel-amd64-3.16.5-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.