Manual de Gentoo Linux amd64: Instalar Gentoo

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



Introducción

Bienvenido

¡Bienvenidos a Gentoo! Gentoo es un sistema operativo gratuito basado en Linux que se puede optimizar y personalizar automáticamente para casi cualquier aplicación o necesidad. Está construido sobre un ecosistema de software libre y no oculta a sus usuarios lo que hay bajo el capó.

Franqueza

Las principales herramientas de Gentoo están construidas a partir de lenguajes de programación simples. Portage, el sistema de mantenimiento de paquetes de Gentoo, está escrito en Python. Ebuilds, que proporcionan definiciones de paquetes para Portage están escritos en bash. Se anima a nuestros usuarios a revisar, modificar y mejorar el código fuente de todas las partes de Gentoo.

De forma predeterminada, los paquetes sólo se parchean cuando es necesario para corregir errores o proporcionar interoperabilidad dentro de Gentoo. Se instalan en el sistema compilando el código fuente proporcionado por proyectos externos en formato binario (aunque también se incluye soporte para paquetes binarios precompilados). La configuración de Gentoo se realiza a través de archivos de texto.

Por las razones anteriores y otras: la "franqueza" está incorporada como un "principio de diseño".

Elección

La "elección" es otro "principio de diseño" de Gentoo.

Al instalar Gentoo, la elección se ve claramente a lo largo del Manual. Los administradores del sistema pueden elegir entre dos sistemas de inicio totalmente compatibles (el propio OpenRC de Gentoo y el systemd de Freedesktop.org), la estructura de partición para los discos de almacenamiento, qué sistemas de archivos usar en el disco( s), un perfil del sistema de referencia, elimine o agregue funciones a nivel global (en todo el sistema) o específico de cada paquete a través de indicadores USE, cargador de arranque, utilidad de administración de red y mucho, mucho más.

Como filosofía de desarrollo, Los autores de Gentoo intentan evitar forzar a los usuarios a utilizar un perfil de sistema o entorno de escritorio específico. Si se ofrece algo en el ecosistema GNU/Linux, es probable que esté disponible en Gentoo. Si no, nos encantaría que lo estuviera. Para solicitudes de nuevos paquetes, presente una petición o cree su propio repositorio de ebuilds.

Potencia

Ser un sistema operativo basado en código fuente permite que Gentoo pueda ser portado a nuevos conjuntos de instrucciones de arquitectura de procesador y también permite que todos los paquetes instalados sean ajustados. Esta fortaleza hace emerger otro “principio de diseño” de Gentoo: la “potencia”.

Un administrador de sistemas que haya instalado y personalizado Gentoo con éxito habrá compilado un sistema operativo personalizado a partir del código fuente. Todo el sistema operativo se puede ajustar a nivel binario a través de los mecanismos incluidos en el archivo make.conf de Portage. Si así lo desea, se pueden realizar ajustes por paquete o por grupos de paquetes. De hecho, se pueden agregar o eliminar conjuntos completos de funciones utilizando indicadores USE.

Es muy importante que el lector del Manual comprenda que estos principios de diseño son los que hacen que Gentoo sea único. Con los principios de gran potencia, muchas opciones y franqueza extrema resaltados, se debe emplear rigor, reflexión e intencionalidad al usar Gentoo.

Cómo se estructura la instalación

La instalación de Gentoo puede verse como un procedimiento de diez pasos. Después de cada paso se alcanza cierto estado:

Paso Resultado
1 El usuario dispone de un entorno de trabajo listo para instalar Gentoo.
2 La conexión a Internet estará preparada para instalar Gentoo.
3 Los discos duros están inicializados para alojar la instalación Gentoo.
4 El entorno de instalación está preparado y el usuario puede entrar en una jaula chroot.
5 Los paquetes principales, que son los mismos en toda instalación Gentoo, están instalados.
6 El núcleo Linux está instalado.
7 Se crean la mayoría de los archivos de configuración del sistema.
8 Las herramientas del sistema necesarias están instaladas.
9 Se ha instalado y configurado el cargador de arranque apropiado.
10 El entorno Gentoo Linux recién instalado está preparado para ser explorado.

Siempre que se presenta cierta elección, se tratará de explicar en el manual los pros y los contras de cada opción. Aunque el texto continuará con una opción por defecto (Identificada con "Por defecto:" en el título). No crea que esta opción por defecto es la recomendada por Gentoo. Es, sin embargo y así lo creemos en Gentoo por la que la mayoría de los usuarios optará.

Algunas veces se puede seguir un paso opcional. Estos pasos están marcados como "Opcional: " y por tanto no son necesarios para instalar Gentoo. Sin embargo, algunos pasos opcionales dependen de una decisión tomada previamente. Le informaremos cuando se dé el caso, tanto cuando tome la decisión, como cuando se describa el paso opcional.

Opciones de instalación para Gentoo

Gentoo se puede instalar de formas muy diversas. Se puede descargar e instalar desde un medio de instalación oficial de Gentoo como nuestras imágenes ISO arrancables. Los medios se pueden instalar desde un dispositivo de almacenamiento USB o se pude acceder a ellos a través de un entorno arrancado desde red. Alternativamente, se puede instalar Gentoo desde medios no oficiales como una distribución ya instalada o un disco que no contenga Gentoo (por ejemplo Knoppix).

Este documento cubre la instalación utilizando un medio de instalación oficial de Gentoo o, en algunos casos, instalación por red.

Nota
Para encontrar ayuda acerca de otros procedimientos de instalación, incluyendo el uso de medios arrancables ajenos a Gentoo, por favor, lea nuestra guía sobre métodos alternativos de instalación.

También ofrecemos un documento de consejos y trucos para instalar Gentoo que también puede ser de utilidad.

Problemas

Si encuentra algún problema durante la instalación (o con el documento de instalación), por favor, visite nuestro sistema de seguimiento de incidencias y compruebe si el problema es ya conocido. Si no lo es, por favor, cree un informe sobre él para que podamos echarle un vistazo. No tema a los desarrolladores a los que se les han asignado los informes de error, (normalmente) no se comen a nadie.

Aunque este documento es específico de la arquitectura puede contener referencias a otras arquitecturas ya que muchas partes del manual de Gentooo utilizan texto que es idéntico para todas las arquitecturas (con el fin de evitar la duplicación de esfuerzos). Estas referencias se conservan mínimamente para evitar confusiones.

Si hay alguna duda sobre si el problema es o no un problema del usuario (algún error cometido a pesar de haber leído la documentación cuidadosamente) o un problema de software (algún error que cometimos a pesar de haber probado la instalación/documentación cuidadosamente), todo el mundo es bienvenido a unirse al canal #gentoo (webchat) en irc.libera.chat. Por supuesto, cualquier otro es bienvenido también, ya que nuestro canal de chat cubre el amplio espectro de Gentoo.

Hablando de esto, si tiene cualquier pregunta adicional concerniente a Gentoo, eche un vistazo al artículo FAQ. También están disponibles las FAQs en los Foros de Gentoo.




Requisitos del hardware

Antes de continuar con el proceso de instalación, se deben cumplir los requisitos mínimos de hardware para instalar Gentoo exitosamente para la arquitectura del sistema amd64.


Requisitos de hardware del disco dinámico AMD64
CD minimalista LiveDVD
CPU Cualquier CPU de x86-64, tanto AMD64 como Intel 64
Memoria 2 GB
Espacio en disco 8 GB (excluyendo el espacio de intercambio)
Espacio de intercambio (swap) Al menos 2 GB

El proyecto AMD64 es un buen lugar para obtener más información acerca del soporte de Gentoo para amd64.


Medios de instalación de Gentoo Linux

Consejo
Aunque se recomienda utilizar el medio de arranque oficial de Gentoo durante la instalación, es posible utilizar otros entornos de instalación. Sin embargo, no hay garantía de que contengan los componentes necesarios. Si se utiliza un entorno de instalación alternativo, vaya a Preparación de los discos.

El CD mínimalista de instalación

El CD de instalación mínima de Gentoo es una pequeña imagen de arranque: un entorno Gentoo autónomo. Esta imagen es mantenida por Desarrolladores Gentoo y está diseñada para permitir que cualquier usuario con conexión a Internet instale Gentoo. Durante el proceso de arranque, se detecta el hardware y se cargan automáticamente los controladores adecuados.

Las versiones de CD de instalación mínima se denominan con el formato: install-<arch>-minimal-<marca de tiempo de lanzamiento>.iso.

El LiveDVD ocasional de Gentoo

Ocasionalmente, se crea una imagen de DVD especial que se puede usar para instalar Gentoo. Las instrucciones de este capítulo se centran en el CD minimalista, por lo que las cosas pueden ser un poco diferentes al arrancar desde el LiveDVD. Sin embargo, el LiveDVD (o cualquier otro entorno oficial Gentoo Linux) admite la obtención de un indicador de root simplemente invocando sudo su - o sudo -i en una terminal.

Entonces, ¿Qué son los stages?

Un archivo de stage es un archivo que sirve como semilla para un entorno Gentoo.

Los archivos de stage 3 se pueden descargar desde releases/amd64/autobuilds/ en cualquiera de los mirrors oficiales de Gentoo. Las stages se actualizan con frecuencia y, por lo tanto, no se incluyen en las imágenes live oficiales.

Consejo
Por ahora, los archivos stage se pueden ignorar. Se describirán con mayor detalle más adelante cuando sean necesarios
Nota
Históricamente, el manual describía los pasos de instalación para archivos stage con versiones inferiores a 3. Estas stages contenían entornos inadecuados para instalaciones típicas y ya no están cubiertos en el manual.

Descargar

Obtener los medios

El medio de instalación predeterminado utilizado por Gentoo Linux son los CD de instalación mínima, que proporcionan un entorno Gentoo Linux muy pequeño y de arranque. Este entorno contiene las herramientas necesarias para instalar Gentoo. Las imágenes en sí se pueden descargar desde la página de descargas (recomendado) o navegando manualmente a la ubicación ISO en una de las muchas mirrors disponibles.

Navegando por los mirrors de Gentoo

Si descarga desde un mirroe, los CD de instalación mínima se pueden encontrar en:

  1. Conéctese al mirror, normalmente usando uno local que se encuentre en mirrors de fuentes de Gentoo.
  2. Navegue hasta el directorio releases/.
  3. Seleccione el directorio para la arquitectura adecuada (por ejemplo amd64/).
  4. Seleccione el directorio autobuilds/.
  5. Para las arquitecturas amd64 and x86 seleccione, bien el directorio current-install-amd64-minimal/, bien el directorio current-install-x86-minimal/ (respectivamente). Para las demás arquitecturas, navegar al directorio current-iso/.
Nota
Algunas arquitecturas como arm, mips y s390 no tendrán CDs mínimos de instalación. Por el momento El proyecto de ingeniería de liberaciones de Gentoo no ofrece el soporte para la construcción de ficheros .iso para estas arquitecturas.

Dentro de esta localización el fichero del medio de instalación es el que tiene el sufijo .iso. Por ejemplo, eche un vistazo a la siguiente lista:

CÓDIGO Ejemplo de listado de archivos descargables en releases/amd64/autobuilds/current-install-amd64-minimal/
[TXT]	install-amd64-minimal-20231112T170154Z.iso.asc	        2023-11-12 20:41        488
[TXT]	install-amd64-minimal-20231119T164701Z.iso.asc	        2023-11-19 18:41        488
[TXT]	install-amd64-minimal-20231126T163200Z.iso.asc	        2023-11-26 18:41        488
[TXT]	install-amd64-minimal-20231203T170204Z.iso.asc	        2023-12-03 18:41        488
[TXT]	install-amd64-minimal-20231210T170356Z.iso.asc	        2023-12-10 19:01        488
[TXT]	install-amd64-minimal-20231217T170203Z.iso.asc	        2023-12-17 20:01        488
[TXT]	install-amd64-minimal-20231224T164659Z.iso.asc	        2023-12-24 20:41        488
[TXT]	install-amd64-minimal-20231231T163203Z.iso.asc	        2023-12-31 19:01        488
[ ]     install-amd64-minimal-20240107T170309Z.iso              2024-01-07 20:42        466M
[ ]     install-amd64-minimal-20240107T170309Z.iso.CONTENTS.gz	2024-01-07 20:42        9.8K
[ ]     install-amd64-minimal-20240107T170309Z.iso.DIGESTS      2024-01-07 21:01        1.3K
[TXT]   install-amd64-minimal-20240107T170309Z.iso.asc	        2024-01-07 21:01        488
[ ]     install-amd64-minimal-20240107T170309Z.iso.sha256       2024-01-07 21:01        660
[TXT]	latest-install-amd64-minimal.txt                        2024-01-08 02:01        653

En el ejemplo anterior, el archivo install-amd64-minimal-20240107T170309Z.iso es el CD de instalación mínima. Pero como puede verse, también existen otros archivos relacionados:

  • Un archivo .CONTENTS.gz que es un archivo de texto comprimido con gz que enumera todos los archivos disponibles en el medio de instalación. Este archivo puede ser útil para verificar si un firmware o controladores específicos están disponibles en el medio de instalación antes de descargarlo.
  • Un archivo .DIGESTS que contiene el hash del propio archivo ISO, en varios formatos/algoritmos de hash. Este archivo se puede utilizar para verificar la integridad del archivo ISO.
  • Un archivo .asc que es una firma criptográfica del archivo ISO. Esto se puede utilizar para verificar la integridad y autenticidad de la imagen: que la descarga haya sido proporcionada por el equipo de ingeniería de lanzamientos de Gentoo, libre de manipulaciones.

Ignore por ahora los otros ficheros que aparecen en esta localización, éstos se usarán más adelante en la instalación. Descargue el fichero .iso y, si desea verificar la descarga, descargue también el fichero .iso.asc para el fichero .iso.

Consejo
El archivo .DIGESTS solo es necesario si la firma en el archivo .iso.asc no está verificada.

Verificar los ficheros descargados

Nota
Este paso es opcional y no es necesario para instalar Gentoo Linux. Sin embargo, se recomienda realizarlo y con él se asegura que el fichero que se ha descargado no está corrupto y que de hecho lo ha generado el equipo de Infraestructura de Gentoo.

El archivo .asc proporciona una firma criptográfica del ISO. Al validarlo, uno puede asegurarse de que el archivo de instalación lo proporciona el equipo de ingeniería de lanzamientos de Gentoo y está intacto y sin modificaciones.

Verificación basada en Microsoft Windows

En primer lugar, para verificar la firma criptográfica, se pueden utilizar herramientas como GPG4Win. Después de la instalación se necesita importar las claves públicas del equipo de Ingeniería de Lanzamientos de Gentoo. La lista de claves está disponible en la página de firmas. Una vez importadas, el usuario puede verificar la firma en el fichero .asc.

Verificación en sistemas basados en Linux

En un sistema Linux, el método más común para verificar la firma criptográfica es el uso del software app-crypt/gnupg. Con este paquete instalado, se pueden utilizar la siguiente órden para verificar la firma criptográfica en el fichero .asc.

Consejo
Al importar claves de Gentoo, verifique que la huella digital (BB572E0E2D182910) coincida.

Las claves de Gentoo se pueden descargar desde hkps://keys.gentoo.org usando las huellas digitales disponibles en la página de firmas:

user $gpg --keyserver hkps://keys.gentoo.org --recv-keys 13EBBDBEDE7A12775DFDB1BABB572E0E2D182910

Alternativamente, puede utilizar en su lugar el WKD para descargar la clave:

user $gpg --auto-key-locate=clear,nodefault,wkd --locate-key releng@gentoo.org
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: Total number processed: 2
gpg:               imported: 2
gpg: no ultimately trusted keys found
pub   dsa1024 2004-07-20 [SC] [expires: 2025-07-01]
      D99EAC7379A850BCE47DA5F29E6438C817072058
uid           [ unknown] Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>
sub   elg2048 2004-07-20 [E] [expires: 2025-07-01]

O si utiliza medios de lanzamiento oficiales de Gentoo, importe la clave desde /usr/share/openpgp-keys/gentoo-release.asc (proporcionada por sec-keys/openpgp-keys-gentoo-release):

user $gpg --import /usr/share/openpgp-keys/gentoo-release.asc
gpg: directory '/home/larry/.gnupg' created
gpg: keybox '/home/larry/.gnupg/pubring.kbx' created
gpg: key DB6B8C1F96D8BF6D: 2 signatures not checked due to missing keys
gpg: /home/larry/.gnupg/trustdb.gpg: trustdb created
gpg: key DB6B8C1F96D8BF6D: public key "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" imported
gpg: key 9E6438C817072058: 3 signatures not checked due to missing keys
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: 1 signature not checked due to a missing key
gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported
gpg: key A13D0EF1914E7A72: 1 signature not checked due to a missing key
gpg: key A13D0EF1914E7A72: public key "Gentoo repository mirrors (automated git signing key) <repomirrorci@gentoo.org>" imported
gpg: Total number processed: 4
gpg:               imported: 4
gpg: no ultimately trusted keys found

A continuación, verifique la firma criptográfica:

user $gpg --verify install-amd64-minimal-20141204.iso.DIGESTS.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET
gpg:                using RSA key 0xBB572E0E2D182910
gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD  B1BA BB57 2E0E 2D18 2910

Para estar completamente seguro de que todo está en su sitio, verifique que la huella digital coincide con la huella digital que se muestra en la página de firmas.

Nota
En general, es una buena práctica marcar una clave importada como confiable, una vez que esté seguro de que es confiable. Cuando se verifican las claves confiables, gpg no dirá "desconocido" ni advertirá sobre que la firma no es confiable.

Grabar el medio de arranque

Por supuesto, sólo con descargar un archivo ISO, no se puede iniciar la instalación de Gentoo Linux. El archivo ISO debe escribirse en un dispositivo de arranque. Esto generalmente requiere que la imagen se extraiga a un sistema de archivos o se escriba directamente en un dispositivo.

Escribir un USB de arranque

La mayoría de los sistemas modernos admiten el arranque desde un dispositivo USB.

Escribiendo con Linux

dd normalmente está disponible en la mayoría de las distribuciones de Linux y se puede usar para escribir el medio de arranque de Gentoo en una unidad USB.

Determinar la ruta del dispositivo USB

Antes de escribir, se debe determinar la ruta al dispositivo de almacenamiento deseado.

dmesg mostrará información detallada que describe el dispositivo de almacenamiento a medida que se agrega al sistema:

root #dmesg
[268385.319745] sd 19:0:0:0: [sdd] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)

Alternativamente, se puede usar lsblk para mostrar los dispositivos de almacenamiento disponibles:

root #lsblk
sdd           8:48   1  28.9G  0 disk
├─sdd1        8:49   1   246K  0 part
├─sdd2        8:50   1   2.8M  0 part
├─sdd3        8:51   1 463.5M  0 part
└─sdd4        8:52   1   300K  0 part

Una vez que se ha determinado el nombre del dispositivo, se puede agregar al prefijo de ruta /dev/ para obtener la ruta del dispositivo /dev/sdd.

Consejo
Se recomienda usar la ruta del dispositivo base, es decir sdd frente a sdd1, ya que el medio de arranque de Gentoo contiene un esquema de partición GPT completo.
Escribir con dd
Advertencia
Asegúrese de verificar la ruta de destino (of=target) antes de ejecutar dd, ya que se sobrescribirá.

Con la ruta del dispositivo (/dev/sdd) y el medio de arranque install-amd64-minimal-<marca de tiempo de lanzamiento>.iso listos:

root #dd if=install-amd64-minimal-<marca de tiempo de lanzamiento>.iso of=/dev/sdd bs=4096 status=progress && sync
Nota
if= especifica el archivo de entrada, of= especifica el archivo de salida, que en este caso , es un dispositivo.
Consejo
bs=4096 se utiliza ya que acelera las transferencias en la mayoría de los casos, status=progress muestra estadísticas de transferencia.

Grabar un disco

See also
Puede encontrar un conjunto de instrucciones más elaborado en CD/DVD/BD_writing#Image_writing.

Grabación con Microsoft Windows 7 y superior

Las versiones de Microsoft Windows 7 y superiores pueden montar y grabar imágenes ISO en medios ópticos sin el requisito de software de terceros. Simplemente inserte un disco grabable, busque los archivos ISO descargados, haga clic con el botón derecho en el archivo en el Explorador de Windows y seleccione "Grabar imagen de disco".

Grabar con Linux

La utilidad cdrecord del paquete app-cdr/cdrtools puede grabar imágenes ISO en Linux.

Para grabar el archivo ISO en el CD usando el dispositivo /dev/sr0 (este es el primer dispositivo de CD en el sistema, sustituir con el dispositivo apropiado si es necesario):

user $cdrecord dev=/dev/sr0 install-amd64-minimal-20141204.iso

Los usuarios que prefieran una interfaz gráfica de usuario puede utilizar K3B, parte del kde-apps/k3b. En K3B, vaya a Herramientas y utilice Grabar Imagen de CD.

Arrancar

Arrancar el medio de instalación

Una vez se ha preparado el medio de instalación es el momento de arrancarlo. Inserte el medio en el sistema, reinicie y entre en la interfaz de usuario del firmware de la placa base. Esto se hace normalmente pulsando un tecla del teclado como Supr, F1, F10 o ESC durante el proceso de chequeo durante el arranque (llamado POST o Power-On Self-Test ). La tecla que dispara este proceso depende del sistem y de la placa base. Si no es obvia, busque en Internet e investigue utilizando el manual del modelo de su placa base como indicio para el motor de búsqueda. Una vez dentro del menú del firmware de la placa base, cambie el orden de arranque del sistema de modo que se intente arrancar antes desde los los medios externos (Discos CD o DVD o dicos USB) que sean arrancables que desde los discos interno. Si no se realiza este cambio, el sistema probablemente reinicie desde el dispositivo de disco interno ignorando el dispositivo de arranque recién conectado.

Importante
Al instalar Gentoo en un sistema con una interfaz de firmware UEFI, asegúrese de que la imagen live se haya iniciado en modo UEFI. En el caso accidental de que se haya iniciado el arranque de DOS/BIOS heredado, será necesario reiniciar en modo UEFI antes de finalizar la instalación de Gentoo Linux.

Asegúrese de que los medios de instalación estén insertados o conectados al sistema y reinicie. Debería mostrarse un mensaje de inicio de GRUB con varias entradas de inicio. En esta pantalla, Enter comenzará el proceso de inicio con las opciones de inicio predeterminadas. Para iniciar el medio de instalación con opciones de inicio personalizadas, como pasar parámetros adicionales del kernel o las siguientes opciones de hardware, resalte una entrada de inicio y luego presione la tecla e para editar la entrada de inicio. Realice las modificaciones necesarias y luego presione ctrl+x o F10 para iniciar la entrada modificada.

Nota
Con toda probabilidad, el núcleo predeterminado de Gentoo, como se mencionó anteriormente, sin especificar ninguno de los parámetros opcionales, funcionará bien. Para la resolución de problemas de arranque y las opciones de expertos, continúe con esta sección. De lo contrario, simplemente presione Enter y vaya directamente a Configuración de hardware adicional.

En el símbolo de espera de órdenes durante el arranque, los usuarios pueden listar los núcleos disponibles (F1) así como las opciones de arranque (F2). Si no se opta por ninguna opción (bien mostrar información o bien seleccionar un núcleo) durante quince segundos entonces el medio de instalación arrancará desde el disco. Esto permite que la instalaciones reinicien e intenten su entorno instalado sin necesidad de retirar el CD de la bandeja del lector (algo que es de gran ayuda en instalaciones remotas).

Hemos mencionado cómo especificar un núcleo. En el medio instalación minimalista solo se ofrecen dos entradas predefinidas de arranque para el núcleo. La opción por defecto se llama gentoo. La otra opción con la variante -nofb deshabilitan el soporte para framebuffer en el núcleo.

La siguiente sección muestra una visión general breve de los núcleos disponibles y sus descripciones:

Opciones para el núcleo

gentoo
Núcleo por defecto con soporte para CPUs K8 (incluyendo las que tienen soporte para NUMA) y EM64T
gentoo-nofb
El mismo que gentoo pero sin soporte para framebuffer
memtest86
Prueba la RAM del sistema en busca de errores

Junto con el núcleo, las opciones de arranque ayudan para ajustar el proceso de arranque aún más.

Opciones del hardware

acpi=on
Esto carga el soporte de ACPI y también hace que el demonio acpid se arranque desde el CD. Esto sólo es necesario si el sistema requiere de ACPI para funcionar correctamente. No es necesario para ofrecer soporte a Hyperthreading.
acpi=off
Desactiva completamente ACPI. Esto es útil en algunos sistemas antiguos y también es un requisito para el uso de APM. Esto deshabilitará el soporte para Hyperthreading de su procesador.
console=X
Esta opción configura acceso serie a la consola para el CD. La primera opción es el dispositivo, normalmente ttyS0 en x86, seguido de cualesquiera opciones de conexión que deben estar separadas por coma. Las opciones predeterminadas son: 9600,8,n,1.
dmraid=X
Esta opción permite pasar opciones al subsistema de mapeo de dispositivo RAID. Las opciones deben ir entre comillas.
doapm
Esta opción carga el controlador APM de apoyo. También requiere que acpi=off.
dopcmcia
Esta opción carga el soporte para PCMCIA y Cardbus hardware y también causa que el gestor de tarjetas pcmcia se arranque desde el CD en el inicio. Esto sólo es necesario cuando se arranque desde dispositivos PCMCIA/Cardbus.
doscsi
Esta opción carga el soporte para la mayoría de los controladores SCSI. Este es también un requisito para el arranque de la mayoría de los dispositivos USB, ya que utilizan el subsistema SCSI del núcleo.
sda=stroke
Esto permite al usuario particionar el disco duro entero, incluso cuando el BIOS no es capaz de gestionar discos grandes. Esta opción sólo se usa en máquinas con BIOS antiguos. Reemplace sda por el dispositivo que requiera esta opción.
ide=nodma
Esta opción fuerza la desactivación de la DMA en el núcleo. Varios chipsets IDE lo necesitan y también algunas unidades de CDROM. Se debe probar esta opción si el sistema tiene problemas para leer desde el CDROM IDE. También deshabilita que los ajustes predeterminados de hdparm se ejecuten.
noapic
Esta opción deshabilita el Controlador Avanzado de Interrupciones Programado (APIC) presente en las placas base modernas. Se sabe que puede causar algunos problemas en hardware antiguo.
nodetect
Esto desactiva toda la detección automática realizada por el CD, incluida la detección automática del dispositivo y el sondeo DHCP. Esto es útil para depurar un CD o controlador defectuoso.
nodhcp
Esta opción deshabilita DHCP en las tarjetas de red que se han detectado. Esto es útil en redes que tienen únicamente direcciones estáticas.
nodmraid
Deshabilita el soporte para el mapeador de dispositivos RAID, tales como el que se utiliza en los controladores RAID IDE/SATA integrados en la placa base.
nofirewire
Esta opción deshabilita la carga de módulos Firewire. Esto sólo debería ser necesario si su hardware Firewire está causando un problema durante el arranque del CD.
nogpm
Esta opción deshabilita el soporte gpm para el ratón en la consola.
nohotplug
Esto deshabilita la carga de los scripts de inicio hotplug y coldplug en el arranque. Esto es útil para depurar un CD o controlador defectuoso.
nokeymap
Esta opción deshabilita la selección del mapa de teclado para seleccionar distribuciones de teclado que no sean la estadounidense (US).
nolapic
Esta opción deshabilita el APIC local en los núcleos para sistemas monoprocesador.
nosata
Esta opción deshabilita la carga de los módulos Serial ATA. Esto se utiliza cuando el sistema tiene problemas con el subsistema SATA.
nosmp
Esta opción deshabilita SMP, o el Multiprocesamiento Simétrico, en los núcleos con SMP habilitado. Esto es útil para la depuración de problemas relacionados con SMP que tienen algunos controladores y placas base.
nosound
Esta opción deshabilita el soporte para sonido y ajuste de volumen. Esto es útil para sistemas donde el sopore para sonido causa problemas.
nousb
Esta opción deshabilita la carga automática de los módulos USB. Esto es útil para la depuración de problemas con USB.
slowusb
Esta opción añade pausas extra en el proceso de arranque para CDROMs USB como en el IBM BladeCenter.

Gestión de volúmenes y dispositivos lógicos

dolvm
Habilita el soporte para la gestión de volúmenes lógicos (LVM) de Linux.

Otras opciones

debug
Habilita la depuración de código. Esto puede causar problemas, ya que muestra una gran cantidad de datos en la pantalla.
docache
Esta opción hace que se se almacene en caché (RAM) toda la porción de CD que contiene código que se va a ejecutar lo que permite al usuario desmontar /mnt/cdrom y montar otro CDROM. Esta opción necesita al menos el doble de capacidad en RAM que el tamaño del CD.
doload=X
Esta opción hace que el disco RAM de inicio cargue cualquier módulo de la lista, así como sus dependencias. Reemplace la X con el nombre del módulo. Se puede especificar varios módulos separándolos por comas.
dosshd
Inicia sshd en el arranque, lo cual es útil para instalaciones desatendidas.
passwd=foo
Establece lo que sigue al igual como la contraseña de root, lo cual es necesario para dosshd ya que la contraseña de root se ofusca por defecto.
noload=X
Esta opción hace que el disco RAM de inicio evite la carga de un módulo específico que puede estar causando un problema. La sintaxis es la misma que para doload.
nonfs
Deshabilita el inicio de portmap/nfsmount en el arranque.
nox
Esta opción hace LiveCD con X habilitado no inicie automáticamente X, sino que muestre la línea de órdenes.
scandelay
Esta opción hace que el CD pause durante diez segundos en algunas partes del proceso de arranque para permitir a los dispositivos lentos que se inicialicen y estén listos para su uso.
scandelay=X
Esta opción permite al usuario especificar un determinado retardo en segundos que se añade a algunas partes del proceso de arranque para permitir a los dispositivos lentos que se inicialicen y estén listos para su uso. Reemplace la X por el número de segundos a pausar.
Nota
El medio arrancable comprobará la existencia de opciones no* antes de las opciones do*, de modo que la opciones se pueden revocar en el orden exacto en el que se han especificado.

Ahora arranque desde el medio, seleccione un núcleo (si no le sirve el núcleo por defecto gentoo) y las opciones de arranque. A modo de ejemplo, iniciamos el núcleo gentoo con dopcmcia como parámetro del núcleo:

boot:gentoo dopcmcia

A continuación se presentará al usuario una pantalla de inicio y una barra de progreso. Si las instalación se realiza en un sistema con un teclado que no sea el estadounidense (US), asegúrese de presionar cuanto antes Alt + F1 para cambiar al modo detallado y seguir el símbolo de espera de órdenes. Se no se realiza ninguna selección en diez segundos, se aceptarán los valores por defecto (teclado US) y el proceso de arranque continuará. Una vez haya finalizado el proceso de arranque, el usuario ingresa automáticamente en el entorno Gentoo Linux "Vivo" como el usuario root, el superusuario. Se mostrará un símbolo de espera de órdenes de root en la consola actual y se puede cambiar a otras consolas pulsando Alt+F2, Alt+F3 y Alt+F4. Se puede volver a la primera consola pulsando Alt+F1.


Configuración adicional del hardware

Cuando el medio de instalación arranca, trata de detectar todos los dispositivos hardware y carga los módulos del núcleo adecuados para dar soporte a ese hardware. En la gran mayoría de los casos, hace muy buen trabajo. Sin embargo, en algunos casos puede que no cargue automáticamente los módulos del núcleo necesitados por el sistema. Si la detección automática de PCI perdió algunos de los dispositivos hardware del sistema, se tendrán que cargar manualmente los módulos del núcleo adecuados.

En el siguiente ejemplo se carga el módulo 8139too (que soporta ciertos tipos de interfaces de red):

root #modprobe 8139too

Opcional: Cuentas de Usuario

Si otras personas necesitan tener acceso al entorno de la instalación, o se necesita lanzar órdenes como un usuario que no sea root en el medio de instalación (por ejemplo para chatear usando con irssi sin privilegios de root por razones de seguridad), entonces se necesita crear una cuenta de usuario y definir la contraseña de root para que sea robusta.

Para cambiar la contraseña de root, utilice la utilidad passwd:

root #passwd
Nueva contraseña: (Introduzca la nueva contraseña)
Vuelva a escribir la nueva contraseña: (Introduzca la contraseña)

Para crear una cuenta de usuario, en primer lugar introduzca las credenciales de la nueva cuenta seguidas de la contraseña. Las órdenes useradd y passwd se utilizan para esta tarea.

En el siguiente ejemplo, se crea un usuario llamado juan:

root #useradd -m -G users juan
root #passwd juan
Nueva contraseña: (Introduzca la contraseña de juan)
Vuelva a escribir la nueva contraseña: (Introduzca de nuevo la contraseña de juan)

Para cambiar del (actual) usuario root a la cuenta del usuario recién creado, utilice la orden su:

root #su - juan

Opcional: Ver la documentación mientras se realiza la instalación

TTYs

Para ver el manual de Gentoo desde un TTY durante la instalación, primero cree una cuenta de usuario como se describe arriba, luego presione Alt+F2 para ir a una nueva terminal (TTY) e inicie sesión como el usuario recién creado. Siguiendo el principio de privilegio mínimo, es una buena práctica evitar navegar por la web o, en general, realizar cualquier tarea con privilegios superiores a los necesarios. La cuenta root tiene control total del sistema y, por lo tanto, debe usarse con moderación.

Durante la instalación, se puede usar en navegador web links para navegar por el manual de Gentoo. Por supuesto, solo desde el momento en que se dispone de conexión a Internet.

user $links https://wiki.gentoo.org/wiki/Handbook:AMD64/es

Para volver al terminal original, pulse Alt + F1.

Consejo
Cuando se inicia en los entornos mínimos de Gentoo o de administración de Gentoo, estarán disponibles siete TTY. Se pueden cambiar presionando Alt y luego una tecla de función entre F1-F7. Puede resultar útil cambiar a una nueva terminal mientras se espera que se complete el trabajo, para abrir documentación, etc.

GNU Screen

La utilidad Screen se incluye por defecto en los medios de instalación oficiales de Gentoo. Puede ser más eficiente para los entusiastas más experimentados utilizar screen para ver las instrucciones de instalación utilizando varios paneles en lugar del método de tener múltiples TTYs mencionado arriba.

Opcional: Iniciar el demonio SSH

Para permitir que otros usuarios tengan acceso al sistema durante la instalación (tal vez para ofrecer ayuda durante la misma o incluso hacerlo de forma remota), se necesita crear una cuenta de usuario (como se documentó anteriormente) y se debe inicar el demonio SSH.

Para iniciar el demonio SSH en un inicio de OpenRC, lance la siguiente orden:

root #rc-service sshd start
Nota
Si los usuarios inician sesión en el sistema, verán un mensaje de que la clave de host para este sistema debe ser confirmada (a través de lo que se denomina huella digital). Este comportamiento es típico y se puede esperar para las conexiones iniciales a un servidor SSH. Sin embargo, más adelante, cuando se configura el sistema y alguien inicia sesión en el sistema recién creado, el cliente SSH le advertirá que la clave de host ha sido cambiada. Esto se debe a que el usuario que ahora inicia sesión - para SSH - en un servidor diferente (es decir, el sistema Gentoo recién instalado en lugar del entorno vivo de la instalación está usando actualmente). Siga las instrucciones que aparecen en la pantalla y luego reemplace la clave de host en el sistema cliente.

Para poder utilizar sshd, la red debe funcionar correctamente. Continúe con el capítulo sobre Configuración de la red




Configuración automática de la red

¿Es posible que simplemente funcione?

Si el sistema está conectado a una red Ethernet con un enrutador IPv6 o un servidor DHCP, es muy probable que la red del sistema se haya configurado automáticamente. Si no se requiere una configuración avanzada adicional, se puede probar la conectividad a Internet.

Usar DHCP

DHCP (Protocolo de configuración dinámica de host) ayuda en la configuración de la red y puede proporcionar automáticamente la configuración para una variedad de parámetros que incluyen: dirección IP, máscara de red, rutas, servidores DNS, servidores NTP, etc.

DHCP requiere que un servidor se ejecute en el mismo segmento de "Capa 2" ("Ethernet") que el cliente que solicita una "concesión". DHCP se utiliza a menudo en redes RFC1918 ("privadas"), pero también se utiliza para adquirir información de IP pública de los ISP.

Consejo
El medio de arranque oficial de Gentoo ejecuta dhcpcd automáticamente al inicio. Este comportamiento se puede desactivar agregando el argumento nodhcp al medio de arranque en la linea de comando del núcleo.

Si aún no se está ejecutando, dhcpcd se puede iniciar en enp1s0 con:

root #dhcpcd enp1s0

Algunos administradores de red requieren que el sistema utilice el nombre de host y el nombre de dominio proporcionados por el servidor DHCP. En ese caso, utilice:

root #dhcpcd -HD enp1s0

Para detener dhcpcd, se puede utilizar -x:

root #dhcpcd -x
sending signal Term to pid 10831
waiting for pid 10831 to exit
See also
Uso de Dhcpcd

Probar la red

Una ruta "predeterminada" correctamente configurada es un componente crítico de la conectividad a Internet; la configuración de la ruta se puede verificar con:

root #ip route
default via 192.168.0.1 dev enp1s0

Si no hay definida ninguna ruta "predeterminada", la conectividad a Internet no está disponible y se requiere configuración adicional.

La conectividad básica a Internet se puede confirmar con un ping:

root #ping -c 3 1.1.1.1
Consejo
Es útil comenzar haciendo ping a una dirección IP conocida en lugar de a un nombre de host. Esto puede aislar los problemas de DNS de los problemas básicos de conectividad a Internet.

El acceso HTTPS saliente y la resolución DNS se pueden confirmar con:

root #curl --location gentoo.org --output /dev/null

A menos que curl informe un error u otras pruebas fallen, el proceso de instalación puede continuar con preparación del disco.

Si curl informa un error, pero los pings vinculados a Internet funcionan, DNS puede necesitar configuración.

Si no se ha establecido la conectividad a Internet, primero se debe verificar la información de la interfaz, luego:

Obtener información de la interfaz

Si la conexión en red no funciona de inmediato, se deben tomar medidas adicionales para habilitar la conectividad a Internet. Generalmente, el primer paso es enumerar las interfaces de red del host.

El comando ip, que forma parte del paquete sys-apps/iproute2, se puede utilizar para consultar y configurar las redes del sistema.

El argumento link se puede utilizar para mostrar enlaces de interfaz de red:

root #ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff

El argumento address se puede utilizar para consultar la información de la dirección del dispositivo:

root #ip address
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
    inet 10.0.20.77/22 brd 10.0.23.255 scope global enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

El resultado de este comando contiene información para cada interfaz de red del sistema. Las entradas comienzan con el índice del dispositivo, seguido del nombre del dispositivo: enp1s0.

Consejo
Si no se muestra ninguna interfaz aparte de lo (loopack), entonces el hardware de red está defectuoso o el controlador de la interfaz no se ha cargado en el kernel. Ambas situaciones van más allá del alcance de este Manual. Por favor solicite soporte en contacto #gentoo (webchat).

Para mantener la coherencia, el manual asumirá que la interfaz de red principal se llama enp1s0.

Nota
Como resultado del cambio hacia nombres de interfaz de red predecibles, el nombre de la interfaz en el sistema puede ser bastante diferente a la antigua convención de nomenclatura eth0. Los medios de arranque modernos de Gentoo utilizan nombres de interfaz con prefijos como eno0, ens1 o enp5s0.

Opcional: configuración específica de la aplicación

Los siguientes métodos generalmente no son necesarios, pero pueden resultar útiles en situaciones en las que se requiere configuración adicional para la conectividad a Internet.

Opcional: Configurar proxys web

Si se accede a internet a través de un proxy web, será necesario definir la información del proxy para que Portage acceda correctamente al proxy para cada protocolo admitido. Portage observa las variables de entorno http_proxy, ftp_proxy y RSYNC_PROXY para descargar paquetes a través de su wget y rsync mecanismos de recuperación.

Ciertos navegadores web en modo texto, como links, también pueden utilizar variables de entorno que definen la configuración del proxy web; en particular para el acceso HTTPS, también será necesario definir la variable de entorno https_proxy. Si bien Portage se verá afectado sin pasar parámetros adicionales en tiempo de ejecución durante la invocación, links requerirá que se establezcan configuraciones de proxy.

En la mayoría de los casos, es suficiente definir variables de entorno utilizando el nombre de host del servidor. En el siguiente ejemplo, se supone que el host del servidor proxy se llama proxy.gentoo.org y el puerto es 8080.

Nota
El símbolo # en los siguientes comandos es un comentario. Se ha agregado solo para mayor claridad y no es necesario escribirlo al ingresar los comandos.

Para definir un proxy HTTP (para tráfico HTTP y HTTPS):

root #export http_proxy="http://proxy.gentoo.org:8080" # Se aplica a Portage y a Links
root #export https_proxy="http://proxy.gentoo.org:8080" # Sólo aplica para Links

Si el proxy HTTP requiere autenticación, establezca un nombre de usuario y contraseña con la siguiente sintaxis:

root #export http_proxy="http://username:password@proxy.gentoo.org:8080" # Se aplica a Portage y a Links
root #export https_proxy="http://username:password@proxy.gentoo.org:8080" # Sólo aplica para Links

Inicie links usando los siguientes parámetros para soporte de proxy:

user $links -http-proxy ${http_proxy} -https-proxy ${https_proxy}

Para definir un proxy FTP para Portage y/o links:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080" # Se aplica a Portage y a Links

Inicie links usando el siguiente parámetro para un proxy FTP:

user $links -ftp-proxy ${ftp_proxy}

Para definir un proxy RSYNC para Portage:

root #export RSYNC_PROXY="proxy.gentoo.org:8080" # Se aplica a Portage; Links no admite un proxy rsync

Usar pppoe-setup para ADSL

Si se requiere PPPoE para acceder a Internet, el medio de arranque de Gentoo incluye el script pppoe-setup para simplificar la configuración de ppp.

Durante la configuración, pppoe-setup solicitará:

  • El nombre de la interfaz Ethernet conectada al módem ADSL.
  • El nombre de usuario y contraseña de PPPoE.
  • IP del servidor DNS.
  • Si se necesita o no un firewall.
root #pppoe-setup
root #pppoe-start

En caso de error, se deben verificar las credenciales en /etc/ppp/pap-secrets o /etc/ppp/chap-secrets. Si las credenciales son correctas, se debe verificar la selección de la interfaz Ethernet para PPPoE.

Usar PPTP

Si se necesita compatibilidad con PPTP, se puede utilizar pptpclient, pero requiere configuración antes de su uso.

Edite /etc/ppp/pap-secrets o /etc/ppp/chap-secrets para que contenga la combinación correcta de nombre de usuario y contraseña:

root #nano /etc/ppp/chap-secrets

Ajuste ahora /etc/ppp/options.pptp si es necesario:

root #nano /etc/ppp/options.pptp

Una vez completada la configuración, ejecute pptp (junto con las opciones que no se pudieron configurar en options.pptp) para conectar el servidor:

root #pptp <server ipv4 address>

Configuración de WEP

Advertencia
No utilice WEP a menos que sea la única opción. WEP prácticamente no proporciona seguridad en una red abierta.
Importante
El comando iw solo está disponible en las siguientes arquitecturas: amd64, x86, arm, arm64 , ppc, ppc64 y riscv.

Si está empleando una tarjeta inalámbrica (802.11), quizá necesite configurar sus opciones antes seguir. Para revisar la configuración inalámbrica actual de su tarjeta, puede utilizar iw. Al ejecutar iw se debería mostrar algo como esto:

root #iw dev wlp9s0 info
Interface wlp9s0
	ifindex 3
	wdev 0x1
	addr 00:00:00:00:00:00
	type managed
	wiphy 0
	channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz
	txpower 30.00 dBm

Para comprobar la conexión actual:

root #iw dev wlp9s0 link
Not connected.

o

root #iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0)
	SSID: GentooNode
	freq: 2462
	RX: 3279 bytes (25 packets)
	TX: 1049 bytes (7 packets)
	signal: -23 dBm
	tx bitrate: 1.0 MBit/s
Nota
Algunas tarjetas inalámbricas pueden tener un nombre de dispositivo como wlan0 o ra0 en lugar de wlp9s0. Lanzar ip link para determinar el nombre correcto del dispositivo.

Para la mayoría de los usuarios, solo hay dos ajustes necesarios para conectarse, el ESSID (también conocido como nombre de red inalámbrica) y, opcionalmente, la clave WEP.

  • En primer lugar, asegurarse de que la interfaz está activa:
root #ip link set dev wlp9s0 up
  • Para conectar a una red abierta llamada NodoGentoo:
root #iw dev wlp9s0 connect -w NodoGentoo
  • Para conectar con una clave WEP hexadecimal, anteponer la clave con d::
root #iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
  • Para conectar con una clave WEP ASCII:
root #iw dev wlp9s0 connect -w GentooNode key 0:alguna-contraseña
Nota
Si la red inalámbrica está configurada para usar claves WPA o WPA2, tendrá que usar wpa_supplicant. Para más información acerca de la configuración de redes inalámbricas en Gentoo Linux, por favor lea el capítulo de redes inalámbricas del Manual Gentoo.

Puede volver a comprobar la configuración inalámbrica utilizando iw dev wlp9s0 link. Una vez que tenga la conexión funcionando, puede continuar configurando las opciones de red de nivel IP como se describe en la siguiente sección (Comprender la terminología de red) o utilizar la herramienta net-setup como se describió anteriormente.

Usar net-setup

En los casos en los que la configuración automática de la red no tiene éxito, el medio de arranque de Gentoo proporciona scripts para ayudar en la configuración de la red. net-setup se puede utilizar para configurar información de red inalámbrica e IP,s estáticas.

root #net-setup enp1s0

net-setup hará algunas preguntas sobre el entorno de red y utilizará esa información para configurar wpa_supplicant o direccionamiento estático.

Importante
El estado de la red debe ser probado después de realizar cualquier paso de configuración. En caso de que los scripts de configuración no funcionen, se requiere configuración de red manual.

Conceptos básicos de Internet e IP

Si todo lo anterior falla, la red debe configurarse manualmente. Esto no es particularmente difícil, pero debe hacerse con reflexión. Esta sección sirve para aclarar la terminología y presentar a los usuarios conceptos básicos de redes relacionados con la configuración manual de una conexión a Internet.

Consejo
Algunos CPE (Equipo proporcionado por el operador) combinan las funciones de un enrutador, punto de acceso, módem, servidor DHCP y servidor DNS en una sola unidad. Es importante diferenciar las funciones de un dispositivo del aparato físico.

Interfaces y direcciones

Las interfaces de red son representaciones lógicas de dispositivos de red. Una interfaz necesita una dirección para comunicarse con otros dispositivos en la red. Si bien sólo se requiere una única dirección, se pueden asignar varias direcciones a una única interfaz. Esto es especialmente útil para configuraciones de doble pila (IPv4 + IPv6).

Para mantener la coherencia, este manual asumirá que la interfaz enp1s0 utilizará la dirección 192.168.0.2.

Importante
Las direcciones IP se pueden configurar arbitrariamente. En consecuencia, es posible que varios dispositivos utilicen la misma dirección IP, lo que genera un conflicto de direcciones. Los conflictos de direcciones se deben evitar utilizando DHCP o SLAAC.
Consejo
IPv6 normalmente utiliza la configuración StateLess Address AutoConfiguration (SLAAC) para la configuración de direcciones. En la mayoría de los casos, configurar manualmente las direcciones IPv6 es una mala práctica. Si se prefiere un sufijo de dirección específico, se pueden usar tokens de identificación de interfaz.

Redes y CIDR

Una vez elegida una dirección, ¿cómo sabe un dispositivo cómo hablar con otros dispositivos?

Las direcciones IP están asociadas con redes. Las redes IP son rangos lógicos contiguos de direcciones.

La notación Enrutamiento entre dominios sin clases o CIDR se utiliza para distinguir los tamaños de red.

  • El valor CIDR, a menudo anotado comenzando con /, representa el tamaño de la red.
    • La fórmula 2 ^ (32 - CIDR) se puede utilizar para calcular el tamaño de la red.
    • Una vez calculado el tamaño de la red, el número de nodos utilizables se debe reducir en 2.
      • La primera IP de una red es la Dirección de red y la última suele ser la Dirección de difusión. Estas direcciones son especiales y no pueden ser utilizadas por hosts normales.
Consejo
Los valores CIDR más comunes son /24 y /32, que representan 254 nodos y un solo nodo respectivamente.

Un CIDR de /24 es el tamaño de red predeterminado de-facto. Esto corresponde a una máscara de subred de 255.255.255.0, donde los últimos 8 bits están reservados para las direcciones IP de los nodos de una red.

La notación: 192.168.0.2/24 se puede interpretar como:

  • La dirección 192.168.0.2
  • En la red 192.168.0.0
  • Con un tamaño de 254 (2 ^ (32 - 24) - 2)
    • Las IP,s utilizables están en el rango 192.168.0.1 - 192.168.0.254
  • Con una dirección de difusión de 192.168.0.255
    • En la mayoría de los casos, la última dirección de una red se utiliza como "dirección de difusión", pero esto se puede cambiar.

Con esta configuración, un dispositivo debería poder comunicarse con cualquier host en la misma red (192.168.0.0).

Internet

Una vez que un dispositivo está en una red, ¿cómo sabe cómo hablar con dispositivos en Internet?

Para comunicarse con dispositivos fuera de las redes locales, se debe utilizar enrutamiento. Un enrutador es simplemente un dispositivo de red que reenvía tráfico a otros dispositivos. El término ruta predeterminada o puerta de enlace normalmente se refiere a cualquier dispositivo de la red actual que se utilice para el acceso a la red externa.

Consejo
Es una práctica estándar hacer que la puerta de enlace sea la primera o la última IP de una red.

Si hay un enrutador conectado a Internet disponible en 192.168.0.1, se puede utilizar como ruta predeterminada, proporcionando acceso a Internet.

Para resumir:

  • Las interfaces deben configurarse con una dirección y una información de red, como el valor CIDR.
  • El acceso a la red local se utiliza para acceder a un enrutador en la misma red.
  • Se configura la ruta predeterminada, por lo que el tráfico destinado a redes externas se reenvía a la puerta de enlace, proporcionando acceso a Internet.

El Sistema de Nombres de Dominio

Recordar IP,s es difícil. El Sistema de Nombres de Dominio fue creado para permitir el mapeo entre Nombres de Dominio y direcciones IP.

Los sistemas Linux utilizan /etc/resolv.conf para definir servidores de nombres que se utilizarán para la resolución DNS.

Consejo
Muchos enrutadores también pueden funcionar como servidores DNS, y el uso de un servidor DNS local puede aumentar la privacidad y acelerar las consultas mediante el almacenamiento en caché.

Muchos ISP ejecutan un servidor DNS que generalmente se anuncia en la puerta de enlace a través de DHCP. El uso de un servidor DNS local tiende a mejorar la latencia de las consultas, pero la mayoría de los servidores DNS públicos arrojarán los mismos resultados, por lo que el uso del servidor se basa en gran medida en las preferencias.

Configuración de red manual

Configuración de dirección de interfaz

Importante
Al configurar manualmente las direcciones IP, se debe considerar la topología de la red local. Las direcciones IP se pueden configurar arbitrariamente; Los conflictos pueden causar interrupciones en la red.

Para configurar enp1s0 con la dirección 192.168.0.2 y CIDR /24:

root #ip address add 192.168.0.2/24 dev enp1s0
Consejo
El inicio de este comando se puede acortar a ip a.

Configuración de ruta predeterminada

La configuración de la dirección y la información de red para una interfaz configurará rutas link, lo que permitirá la comunicación con ese segmento de red:

root #ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
Consejo
Este comando se puede abreviar a ip r.

La ruta default se puede configurar en 192.168.0.1 con:

root #ip route add default via 192.168.0.1

Configuración DNS

La información del servidor de nombres normalmente se adquiere mediante DHCP, pero se puede configurar manualmente agregando entradas nameserver a /etc/resolv.conf.

Advertencia
Si dhcpcd se está ejecutando, los cambios en Template:Ruta no se mantendrán. El estado se puede comprobar con ps x | grep dhcpcd.

nano está incluido en el medio de arranque de Gentoo y puede usarse para editar /etc/resolv.conf con:

root #nano /etc/resolv.conf

Las líneas que contienen la palabra clave nameserver seguida de la dirección IP del servidor DNS se consultan en orden de definición:

ARCHIVO /etc/resolv.confUsar Quad9 DNS.
nameserver 9.9.9.9
nameserver 149.112.112.112
ARCHIVO /etc/resolv.confUsar Cloudflare DNS.
nameserver 1.1.1.1
nameserver 1.0.0.1

El estado del DNS se puede verificar haciendo ping a un nombre de dominio:

root #ping -c 3 gentoo.org

Una vez que se haya verificado la conectividad [[Handbook:AMD64/Instalación/Redes|]], continúe con Preparación de los discos.




Introducción a los dispositivos de bloque

Dispositivos de bloque

Examinaremos de forma detallada los aspectos de Gentoo Linux así como Linux en general que tengan que ver con discos, incluyendo dispositivos de bloques, particiones y sistemas de archivos de Linux. Una vez familiarizados con las entrañas de los discos y sistemas de archivos, podemos establecer las particiones y sistemas de archivos para la instalación.

Para empezar, veamos los dispositivos de bloque. Los discos SCSI y Serial ATA (SATA) aparecen ambos etiquetados entre los dispositivos gestionados como /dev/sda, /dev/sdb, /dev/sdc, etc. En los equipos mas modernos, los discos de estado sólido NVMe sobre PCI Express tienen nombres de dispositivo como /dev/nvme0n1, /dev/nvme0n2, etc..

La siguiente tabla ayudará a los lectores a saber dónde encontrar un tipo concreto de dispositivo de bloque en su sistema:

Tipo de dispositivo Nombre del dispositivo por defecto Notas y consideraciones
IDE, SATA, SAS, SCSI, o USB flash /dev/sda Se puede encontrar desde aproximadamente 2007 hasta la actualidad, es quizá el mas comunmente usado en Linux. Estos tipos de dispositivos pueden se conectados

via bus SATA, SCSI, USB como almacenamiento de bloque. Como ejemplo, la primera partición en el primer dispositivo SATA es nombrada /dev/sda1.

NVM Express (NVMe) /dev/nvme0n1 Lo último en tecnología de estado sólido, los discos NVMe son conectados al bus PCI Express y tienen la mejor velocidad de transferencia de bloques del mercado. Equipos desde alrededor de 2014 hasya la actualidad pueden tener soporte para el hardware NVMe. La primera partición en el primer dispositivo NVMe en nombrada /dev/nvme0n1p1.
MMC, eMMC, and SD /dev/mmcblk0 Los dispositivos embedded MMC, tarjetas SD, y otros tipos de tarjetas de memoria pueden ser útiles para el almacenamiento de datos. No obstante, es posible que muchos sistemas no permitan el arranque desde este tipo de dispositivos. Se segiere no usar estos dispositivos para instalaciones Linux activas; más bien considere usarlos para transferir archivos, que es la idea de diseño típica. Alternativamente, este tipo de almacenamiento podría resultar útil para copias de seguridad de archivos o instantáneas a corto plazo.

Los dispositivos de bloque mencionados anteriormente representan una interfaz abstracta de disco. Las aplicaciones pueden hacer uso de estas interfaces para interactúar con el disco duro de la máquina sin tener que saber el tipo de unidad que tiene: SATA, SCSI, o cualquier otra. La aplicación puede simplemente dirigirse al almacenamiento en el disco como a una serie de bloques contiguos de acceso aleatorio de 4096-bytes (4K).


Tablas de particionamiento

Aunque teóricamente es posible utilizar un disco de forma directa, sin particionar, para albergar la instalación Linux (por ejemplo cuando se crea un RAID btrfs), en la práctica, esto casi nunca ocurre. En su lugar, los dispositivos de bloque se dividen en partes más pequeñas y manejables. En los sistemas amd64 éstas se llaman particiones. Actualmente hay dos tecnologías estándar de particionamiento en uso: MBR (a veces también llamado etiqueta de disco DOS) y GPT; estos están vinculados a los dos tipos de procesos de arranque: arranque BIOS heredado y UEFI.

Tabla de Particiones GUID (GPT)

La configuración Tabla de particiones GUID (GPT) (también llamada etiqueta de disco GPT) utiliza identificadores de 64 bits para las particiones. La ubicación en la que almacena la información de la partición es mucho mayor que los 512 bytes de la tabla de particiones MBR (etiqueta de disco DOS), lo que significa que prácticamente no hay límite en la cantidad de particiones para un disco GPT. Además, el tamaño de una partición está restringido por un límite mucho mayor (casi 8 ZiB, sí, zebibytes).

Cuando se utiliza UEFI (en lugar de BIOS) como interfaz de software de sistema entre el sistema operativo y el firmware, se requiere el uso de GPT ya que se podrían producir problemas de compatibilidad si se utiliza una etiqueta de disco DOS.

GPT también utiliza sumas de comprobación y redundancia. Realiza sumas de comprobación CRC32 para detectar errores en la cabecera y el las tablas de particiones y dispone de una copia de respaldo GPT al final del disco. Esta copia de respaldo puede utilizarse para recuperarse en caso de que se produzcan daños en la GPT primaria que se almacena al comienzo del disco.

Importante
Hay algunas advertencias con respecto a GPT:
  • El uso de GPT en un ordenador con BIOS funciona, pero no se puede realizar un arranque dual con un sistema operativo Microsoft Windows. La razón es que Microsoft Windows se iniciará en modo UEFI si detecta una etiqueta de partición GPT.
  • Algunos firmware de placa base con errores (antiguos) configurados para arrancar en modo BIOS/CSM/legacy también pueden tener problemas con el arranque desde discos etiquetados con GPT.

Registro maestro de arranque (MBR) o sector de arranque DOS

El sector de arranque Registro de arranque maestro (también llamado sector de arranque DOS o etiqueta de disco DOS) se introdujo por primera vez en 1983 con PC DOS 2.x. MBR utiliza identificadores de 32 bits para el sector de comienzo y longitud de las particiones y ofrece soporte para tres tipos de particiones: primaria, extendida, y lógica. Las particiones primarias almacenan su información en el propio registro maestro de arranque, un lugar muy pequeño (normalmente 512 bytes) al comienzo del disco. Debido a esta limitación en el tamaño, solo se permiten cuatro particiones primarias (por ejemplo desde /dev/sda1 hasta /dev/sda4).

Para admitir más particiones, una de las particiones primarias en el MBR se puede marcar como una partición "extendida". Esta partición puede contener particiones lógicas adicionales (particiones dentro de una partición).

Importante
Aunque todavía son compatibles con la mayoría de los fabricantes de placas base, los sectores de arranque MBR y sus limitaciones de particionamiento asociadas se consideran heredados. A menos que trabaje con hardware anterior a 2010, es mejor particionar un disco con Tabla de particiones GUID. Los lectores que deban continuar con este tipo de configuración deben ser conscientes de lo siguiente:
  • La mayoría de las placas base posteriores a 2010 consideran el uso de sectores de arranque MBR como un modo de arranque heredado (compatible, pero no ideal).
  • Debido al uso de identificadores de 32 bits, las tablas de particiones en el MBR no pueden abordar un espacio de almacenamiento que tenga un tamaño superior a 2 TiB.
  • A menos que se cree una partición extendida, MBR admite un máximo de cuatro particiones.
  • Esta configuración no proporciona un sector de arranque de respaldo, por lo que si algo sobrescribe la tabla de particiones, se perderá toda la información de las particiones.
Dicho esto, el arranque de BIOS y MBR todavía se usa con frecuencia en entornos de nube virtualizados como AWS.

Los autores del manual recomiendan utilizar GPT siempre que sea posible para realizar una instalación de Gentoo.

Almacenamiento avanzado

Los CD de instalación de amd64 brindan soporte para Logical Volume Manager (LVM). LVM aumenta la flexibilidad que ofrece la configuración de particiones. Permite combinar particiones y discos en grupos de volumen y definir grupos RAID o cachés en SSD rápidos para HD lentos. Las instrucciones de instalación a continuación se centrarán en particiones "normales", pero es bueno saber que LVM es compatible si se desea esa vía. Visite el artículo LVM para obtener más detalles. Los recién llegados deben tener cuidado: aunque es totalmente compatible, LVM está fuera del alcance de esta guía.

Esquema de particionamiento por defecto

A lo largo del resto del manual, discutiremos y explicaremos dos casos: 1) tabla de particiones GPT y arranque UEFI, y 2) tabla de particiones MBR y arranque BIOS heredado. Si bien es posible mezclar y combinar, eso va más allá del alcance de este manual. Como ya se indicó anteriormente, las instalaciones en hardware moderno deben usar la tabla de particiones GPT y el arranque UEFI; Como excepción a esta regla, el arranque de BIOS y MBR todavía se utiliza con frecuencia en entornos virtualizados (nube).

  1. GUID Partition Table (GPT) and UEFI boot.
  2. MBR Partition Table and MBR DOS/legacy BIOS boot.

While it is possible to mix and match boot types with certain motherboard firmware, mixing goes beyond the intention of the handbook. As previously stated, it is strongly recommended for installations on modern hardware to use GPT and UEFI boot.

El siguiente esquema de particiones se utilizará como un diseño de ejemplo simple:

Importante
The first row of the following table contains exclusive information for either a GPT disk label or a MBR DOS/legacy BIOS disk label. When in doubt, proceed with GPT, since amd64 machines manufactured after the year 2010 generally support UEFI firmware and GPT boot sector.
Partición Sistema de archivos Tamaño Descripción
/dev/sda1 fat32 (UEFI) o ext4 (BIOS) 256M Boot/EFI system partition
/dev/sda2 (swap) RAM size * 2 Partición Swap
/dev/sda3 ext4 Resto del disco Partición raíz

Si esta información es suficiente, el lector avanzado puede saltar directamente al paricionamiento.

Tanto fdisk como parted son utilidades de particionamiento. fdisk es bien conocido, estable y recomendado para el diseño de partición MBR. parted fue una de las primeras utilidades de administración de dispositivos de bloques de Linux en admitir particiones GPT y proporciona una alternativa. Aquí, se usa fdisk ya que tiene una mejor interfaz de usuario basada en texto.

Antes de pasar a las instrucciones de creación, el primer conjunto de secciones describirán con mas detalle cómo pueden crearse esquemas de particionamiento y mencionan algunos problemas comunes.


Diseñar un esquema de particionamiento

¿Cuántas particiones y de qué tamaño?

El diseño de la distribución de la partición del disco depende en gran medida de lo que se pida al sistema y de los sistemas de archivos aplicados al dispositivo. Si hay muchos usuarios, se recomienda tener /home en una partición separada, lo que aumentará la seguridad y facilitará las copias de seguridad y otros tipos de mantenimiento. Si se está instalando Gentoo para funcionar como un servidor de correo, entonces /var debería ser una partición separada ya que todos los correos se almacenan dentro del directorio /var. Los servidores de juegos pueden tener una partición /opt separada, ya que la mayoría del software del servidor de juegos está instalado allí. El motivo de estas recomendaciones es similar al directorio /home: seguridad, copias de seguridad y mantenimiento.

En la mayoría de situaciones dentro de Gentoo, /usr y /var deberían mantenerse relativamente grandes en lo que a tamaño se refiere. /usr alberga la mayoría de aplicaciones disponibles y las fuentes del núcleo Linux (dentro de /usr/src). Por defecto, /var alberga el repositorio de ebuilds de Gentoo ebuild (localizado en /var/db/repos/gentoo), el cual, dependiendo del sistema de ficheros, normalmente ocupa cerda de 650 MiB de espacio en disco. Esta estimación de espacio excluye los directorios /var/cache/distfiles y /var/cache/binpkgs, los cuales gradualmente se llenarán con ficheros fuente y (opcionalmente) paquetes binarios conforme se van añadiendo al sistema.

Cuántas particiones y como son de grandes depende mayoritariamente de considerar o no las compensaciones y la elección de la mejor opción para cada caso. Tener particiones o volúmenes separados tiene las siguientes ventajas:

  • Puede elegir el mejor sistema de archivos para cada partición o volumen.
  • El sistema entero no puede quedarse sin espacio si una herramienta fallara y escribiera datos continuamente en una partición o volumen.
  • Si es el caso, el tiempo dedicado a las comprobaciones de integridad de los sistemas de archivos se reduce ya que las éstas pueden ser hechas en paralelo (aunque esta mejora se realiza más con varios discos que con varias particiones).
  • Se puede mejorar la seguridad montando algunas particiones o volúmenes en modo solo lectura, nosuid (los bits setuid son ignorados), noexec (los bits de ejecución son ignorados), etc.


Sin embargo, tener múltiples particiones tiene también ciertas desventajas:

  • Si no se configura correctamente, el sistema puede tener mucho espacio libre en una partición y poco espacio libre en otra.
  • Una partición separada para /usr/ puede requerir que el administrador arranque con un initramfs para montar la partición antes de que comiencen otros guiones de arranque. Dado que la generación y mantenimiento de un initramfs está más allá del alcance de este manual, recomendamos que los recién llegados no usen una partición separada para /usr/.
  • También hay un límite de 15 particiones para SCSI y SATA a menos que el disco utilice etiquetas GPT.
Nota
Las instalaciones en las que se desee utilizar systemd como el sistema para inicio y servicios deben tener el directorio /usr disponible en el momento del inicio, bien como parte del sistema de archivos o montado a través de initramfs.

¿Qué decir sobre el espacio de intercambio?

No existe un valor perfecto para el tamaño del espacio de intercambio. El propósito del espacio es proporcionar almacenamiento en disco al núcleo cuando la memoria interna (RAM) está bajo presión. Un espacio de intercambio permite que el núcleo mueva páginas de memoria a las que no es probable que se acceda pronto al disco (intercambio o salida de página), lo que liberará memoria en RAM para la tarea actual. Por supuesto, si las páginas intercambiadas en el disco se necesitan repentinamente, deberán volver a colocarse en la memoria (entrada de página), lo que llevará mucho más tiempo que leer desde la RAM (ya que los discos son muy lentos en comparación con la memoria interna).

Cuando un sistema no va a ejecutar aplicaciones con uso intensivo de memoria o tiene mucha RAM disponible, probablemente no necesite mucho espacio de intercambio. Sin embargo, tenga en cuenta que, en caso de hibernación, el espacio de intercambio se utiliza para almacenar todo el contenido de la memoria (probablemente en sistemas de escritorio y portátiles mas que en sistemas de servidor). Si el sistema requiere soporte para la hibernación, entonces se necesita un espacio de intercambio mayor o igual a la cantidad de memoria necesaria.

Como regla general, se recomienda que el tamaño del espacio de intercambio sea el doble de la memoria interna (RAM). Para sistemas con varios discos duros, es aconsejable crear una partición de intercambio en cada disco para que puedan utilizarse para operaciones de lectura/escritura en paralelo. Cuanto más rápido se pueda intercambiar un disco, más rápido se ejecutará el sistema cuando se deba acceder a los datos del espacio de intercambio. Al elegir entre discos rotativos y de estado sólido, es mejor para el rendimiento intercambiar en el SSD. Además, los archivos de intercambio se pueden utilizar como alternativa a las particiones de intercambio; esto es sobre todo interesante para sistemas con espacio de disco muy limitado.


¿Qué es la Partición del Sistema EFI (ESP)?

Al instalar Gentoo en un sistema que usa UEFI para arrancar el sistema operativo (en lugar de BIOS), es importante que se cree una Partición del Sistema EFI (ESP). Las instrucciones a continuación contienen las indicaciones necesarias para manejar correctamente esta operación. No se requiere la partición del sistema EFI al arrancar en modo BIOS/Legacy.

La ESP debe ser una variante de FAT (En ocasiones se muestra como vfat en los sistemas Linux). La UEFI especificación oficial cita que el firmware UEFI reconocerá sistemas de archivos FAT12, 16, o 32, aunque se recomienda FAT32 para la ESP. Después de la partición, formatee el ESP en consecuencia:

root #mkfs.fat -F 32 /dev/sda1
Importante
¡Si el ESP no está formateado con una variante FAT, el firmware UEFI del sistema no encontrará el cargador de arranque (o el núcleo de Linux) y lo más probable es que no pueda arrancar el sistema!

¿Qué es la partición de arranque BIOS?

Una partición de arranque de BIOS solo es necesaria cuando se combina un diseño de partición GPT con GRUB2 en modo BIOS/Legacy. No es necesario cuando se arranca en modo EFI/UEFI, y tampoco cuando se usa una tabla MBR. Es una partición muy pequeña (1 a 2 MB) en la que los cargadores de arranque como GRUB2 pueden colocar datos adicionales que no caben en el almacenamiento asignado. No se utilizará en esta guía.

Partición del disco con GPT para UEFI

Las siguientes partes explican cómo crear el diseño de partición de ejemplo para una instalación de arranque GPT/UEFI usando fdisk. El diseño de la partición de ejemplo se mencionó anteriormente:

Cambie el esquema de particionamiento según sus propias preferencias.

Partición Descripción
/dev/sda1 Partición del sistema (y arranque) EFI
/dev/sda2 Particion swap
/dev/sda3 Partición raíz

Examinar el esquema de particionamiento actual

fdisk es una popular y potente herramienta que permite dividir el disco en particiones. Arranca fdisk sobre tu unidad de disco (en nuestro ejemplo usamos el dispositivo de disco /dev/sda):

root #fdisk /dev/sda

Use la tecla p para mostrar el esquema de particionamiento actual del disco:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G EFI System /dev/sda2 2099200 10487807 8388608 4G Linux swap /dev/sda3 10487808 60549119 50061311 23.9G Linux filesystem

}}

Este disco en particular se ha configurado para albergar dos sistemas de archivos Linux (cada uno con su correspondiente partición listada como "Linux") así como una partición de intercambio (listada como "Linux swap").

Creando una nueva etiqueta de disco / eliminando todas las particiones

Pulse g para crear una nueva etiqueta de disco GPT en el disco; esto eliminará todas las particiones existentes.

Command (m for help):g
Created a new GPT disklabel (GUID: 87EA4497-2722-DF43-A954-368E46AE5C5F).

Para el caso de una etiqueta de disco GPT ya existente (ver el resultado de p arriba), como alternativa, considere eliminar las particiones existentes una por una del disco. Escriba d para eliminar una partición. Por ejemplo, para eliminar una /dev/sda1 existente:

Command (m for help):d
Partition number (1-4): 1

La partición ha sido marcada para su borrado. Ya no aparecerá al mostrar la lista de particiones (p), pero no será eliminada hasta que guarde los cambios realizados. Esto permite anular la operación si se ha cometido una equivocación - en este caso teclee q inmediatamente y la tecla Intro a continuación y no se eliminarán las particiones.

Teclee p de forma repetida para ver el listado de particiones y pulse d junto con el número de la partición para borrarla. Acabará con la tabla de particiones vacia:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F

Ahora que la tabla de particiones que está en memoria está vacía, estamos preparados para crear las particiones.

Creando la partición del sistema EFI (ESP)

Nota
A smaller ESP is possible but not recommended, especially given it may be shared with other OSes.

Primero cree una pequeña partición del sistema EFI, que también se montará como /boot. Escriba n para crear una nueva partición, seguido de 1 para seleccionar la primera partición. Cuando se le solicite el primer sector, asegúrese de que comience en 2048 (que puede ser necesario para el cargador de arranque) y presione Enter. Cuando se le solicite el último sector, escriba +256M para crear una partición de 256 Mbyte de tamaño:

Command (m for help):n
Partition number (1-128, default 1): 1
First sector (2048-60549086, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549086, default 60549086): +256M
 
Created a new partition 1 of type 'Linux filesystem' and of size 256 MiB.

Marque la partición como partición del sistema EFI:

Command (m for help):t
Selected partition 1
Partition type (type L to list all types): 1
Changed type of partition 'Linux filesystem' to 'EFI System'.

Crear la partición de intercambio

A continuación, para crear la partición de intercambio, escriba n para crear una nueva partición, luego escriba 2 para crear la segunda partición, /dev/sda2. Cuando se le solicite el primer sector, presione Enter. Cuando se le solicite el último sector, escriba +4G (o cualquier otro tamaño necesario para el espacio de intercambio) para crear una partición de 4GB de tamaño.

Command (m for help):n
Partition number (2-128, default 2): 
First sector (526336-60549086, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549086, default 60549086): +4G
 
Created a new partition 2 of type 'Linux filesystem' and of size 4 GiB.

Una vez que haya hecho esto, teclee t para definir el tipo de partición, 2 para seleccionar la partición que acaba de crear y entonces "19" para fijar el tipo "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): 19
 
Changed type of partition 'Linux filesystem' to 'Linux swap'.

Crear la partición raíz

Finalmente, para crear la partición raíz, escriba n para crear una nueva partición. Luego escriba 3 para crear la tercera partición, /dev/sda3. Cuando se le solicite el primer sector, presione Enter. Cuando se le solicite el último sector, presione Enter para crear una partición que ocupe el resto del espacio restante en el disco. Después de completar estos pasos, pulsar p debería mostrar una tabla de particiones similar a esta:

Command (m for help):n
Partition number (3-128, default 3): 3
First sector (10487808-60549086, default 10487808):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (10487808-60549086, default 60549086):
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Created a new partition 3 of type 'Linux filesystem' and of size 23.9 GiB.
Nota
Setting the root partition's type to "Linux root (x86-64)" is not required and the system will function normally if it is set to the "Linux filesystem" type. This filesystem type is only necessary for cases where a bootloader that supports it (i.e. systemd-boot) is used and an fstab is not wanted.

After creating the root partition, type t to set the partition type, 3 to select the partition just created and then type in 23 to set the partition type to "Linux Root (x86-64)".

Command(m for help):t
Partition number (1-3, default 3): 3
Partition type or alias (type L to list all): 23
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
Changed type of partition 'Linux filesystem' to 'Linux root (x86-64)'

After completing these steps, typing p should display a partition table that looks similar to this:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F
 
Device       Start      End  Sectors  Size Type
/dev/sda1     2048   526335   524288  256M EFI System
/dev/sda2   526336  8914943  8388608    4G Linux swap
/dev/sda3  8914944 60549086 51634143 24.6G Linux filesystem

Almacenar la tabla de particiones

Para guardar el esquema de particionamiento y salir de fdisk teclee w.

Command (m for help):w

Con las particiones creadas, ahora es el momento de ponerles sistemas de archivos.

Partición del disco con MBR para BIOS / arranque heredado

A continuación, se explica cómo crear el diseño de partición de ejemplo para una instalación de arranque heredada de MBR / BIOS. El diseño de partición de ejemplo mencionado anteriormente es ahora:

Partición Descripción
/dev/sda1 Partición de arranque
/dev/sda2 Partición de intercambio (swap)
/dev/sda3 Partición raíz

Cambie el diseño del particionado según sus preferencias personales.

Ver el diseño de particionado actual

Lance fdisk sobre el disco (en nuestro ejemplo, usamos /dev/sda):

root #fdisk /dev/sda

Utilice la tecla p para mostrar la configuración de particionado actual del disco:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

Este disco en particular estaba configurado hasta ahora para albergar dos sistemas de archivos Linux (cada uno en su partición correspondiente listada como "Linux") así como una partición de intercambio (listada como "Linux swap"), usando una tabla GPT.

Creando una nueva etiqueta de disco / eliminando todas las particiones

Escriba o para crear una nueva etiqueta de disco MBR (aquí también llamada etiqueta de disco DOS) en el disco; esto eliminará todas las particiones existentes.

Command (m for help):o
Created a new DOS disklabel with disk identifier 0xe04e67c4.
The device contains 'gpt' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

Para una etiqueta de disco DOS existente (vea el resultado de p arriba), considere alternativamente eliminar las particiones existentes una por una del disco. Escriba d para eliminar una partición. Por ejemplo, para eliminar una /dev/sda1 existente:

Command (m for help):d
Partition number (1-4): 1

La partición ahora está preparada para su eliminación. Ya no aparecerá al imprimir la lista de particiones (p, pero no se borrará hasta que se hayan guardado los cambios. Esto permite a los usuarios cancelar la operación si se cometió un error, en ese caso, escriba q inmediatamente y presione Enter y la partición no se eliminará.

Escriba repetidamente p para imprimir una lista de particiones y luego escriba d y el número de la partición para eliminarla. Finalmente, la tabla de particiones estará vacía:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4

Ahora estamos listos para crear las particiones.

Creando la partición de arranque

Primero, cree una pequeña partición que se montará como /boot. Escriba n para crear una nueva partición, seguido de p para una partición primaria y 1 para seleccionar la primera partición primaria. Cuando se le solicite el primer sector, asegúrese de que comience en 2048 (que puede ser necesario para el cargador de arranque) y presione Enter. Cuando se le solicite el último sector, escriba +256M para crear una partición de 256 Mbytes de tamaño:

Command (m for help):n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-60549119, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549119, default 60549119): +256M
 
Created a new partition 1 of type 'Linux' and of size 256 MiB.

Mark the partition as bootable by pressing the a key and pressing Enter.

Command (m for help):a
Selected partition 1
The bootable flag on partition 1 is enabled now.

Note: if more than one partition is available on the disk, then the partition will have to be selected.

Creando la partición de intercambio

A continuación, para crear la partición de intercambio, escriba n para crear una nueva partición, luego p, luego escriba 2 para crear la segunda partición primaria, /dev/sda2. Cuando se le solicite el primer sector, presione Enter. Cuando se le solicite el último sector, escriba +4G (o cualquier otro tamaño necesario para el espacio de intercambio) para crear una partición de 4GB de tamaño.

Command (m for help):n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (526336-60549119, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549119, default 60549119): +4G
 
Created a new partition 2 of type 'Linux' and of size 4 GiB.

Una vez hecho lo anterior, escriba t para establecer el tipo de partición, 2 para seleccionar la partición que acaba de crear y luego escriba 82 para establecer el tipo de partición en "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Creando la partición raíz

Finalmente, para crear la partición raíz, escriba n para crear una nueva partición. Luego escriba p y 3 para crear la tercera partición primaria, /dev/sda3. Cuando se le solicite el primer sector, presione Enter. Cuando se le solicite el último sector, presione Enter para crear una partición que ocupe todo el espacio restante en el disco. Después de completar estos pasos, escribir p debería mostrar una tabla de particiones similar a esta:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4
 
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048   526335   524288  256M 83 Linux
/dev/sda2        526336  8914943  8388608    4G 82 Linux swap / Solaris
/dev/sda3       8914944 60549119 51634176 24.6G 83 Linux

Guardar el diseño del particionado

Para guardar el diseño del particionado y salir de fdisk, escriba w.

Command (m for help):w

Ahora es el momento de poner sistemas de archivos en las particiones.


Crear los sistemas de archivos

Advertencia
Cuando utilice una unidad SSD o NVMe, es aconsejable comprobar si hay actualizaciones de firmware. Algunos SSD Intel en particular (600p y 6000p) requieren una actualización de firmware para posible corrupción de datos inducida por patrones de uso de E/S de XFS. El problema está en el nivel de firmware y no en ningún fallo del sistema de archivos XFS. La utilidad smartctl puede ayudar a verificar el modelo del dispositivo y la versión del firmware.

Introducción

Ahora que ya se han creado las particiones, es el momento de crear en ellas un sistema de archivos. En la próxima sección se describen los distintos sistemas de archivos soportados en Linux. Los lectores que ya sepan los sistemas de archivos que pueden usar deben ir a Aplicar un sistema de archivos a una partición. En caso contrario siga leyendo para conocer los sistemas de archivos disponibles...

Sistemas de archivos

Linux ofrece soporta para varias docenas de sistemas de archivos, aunque muchos de ellos se utilizan para desplegar situaciones específicas. Solo algunos de los sistemas de archivos estables se pueden encontrar en la arquitectura amd64. Se recomienda leer acerca de los sistemas de archivos y el estado de soporte en el que se encuentran antes de seleccionar uno demasiado experimental para particiones importantes. XFS es el sistema de archivos recomendado para la mayoría de situaciones y plataformas. Abajo se muestra una lista que no es exhaustiva

btrfs
Sistema de archivos de nueva generación. Proporciona funciones avanzadas como instantáneas, autorreparación mediante sumas de comprobación, compresión transparente, subvolúmenes y RAID integrado. No se garantiza que los núcleos anteriores a 5.4.y sean seguros de usar con btrfs en producción porque las correcciones para problemas graves solo están presentes en las versiones más recientes de las ramas del núcleo LTS. RAID 5/6 y grupos de cuotas no son seguros en todas las versiones de btrfs.
ext4
Ext4 es un sistema de archivos confiable y multiuso para todas las plataformas, aunque carece de características modernas como reflinks.
f2fs
El sistema de archivos compatible con Flash fue creado originalmente por Samsung para su uso con memoria flash NAND. Es una opción decente al instalar Gentoo en tarjetas microSD, unidades USB u otros dispositivos de almacenamiento basados en flash.
XFS
Sistema de archivos con registro de metadatos que viene con un sólido conjunto de funciones y está optimizado para la escalabilidad. Se ha actualizado continuamente para incluir características modernas. El único inconveniente es que las particiones XFS aún no se pueden reducir, aunque se está trabajando en ello. Es notable que XFS admite enlaces de referencia y copia en escritura (CoW), lo cual es particularmente útil en sistemas Gentoo debido a la cantidad de compilaciones que completan los usuarios. XFS es el sistema de archivos moderno y multiuso recomendado para todas las plataformas. Requiere una partición de al menos 300 MB.
VFAT
También conocido como FAT32, es compatible con Linux pero no admite la configuración de permisos estándar de UNIX. Se utiliza principalmente para interoperabilidad/intercambio con otros sistemas operativos (Microsoft Windows o macOS de Apple), pero también es necesario para algunos firmware del gestor de arranque del sistema (como UEFI). Los usuarios de sistemas UEFI necesitarán una EFI System Partition formateada con VFAT para poder arrancar.
NTFS
Este sistema de archivos de "Nueva Tecnología" es el sistema de archivos insignia de Microsoft Windows desde Windows NT 3.1. De manera similar a VFAT, no almacena la configuración de permisos de UNIX ni los atributos extendidos necesarios para que BSD o Linux funcionen correctamente, por lo que no debe usarse como sistema de archivos raíz en la mayoría de los casos. Debe usarse "sólo" para interoperabilidad o intercambio de datos con sistemas Microsoft Windows (tenga en cuenta el énfasis en "sólo").

Puede encontrar información más extensa sobre los sistemas de archivos en el Filesystem Article mantenido por la comunidad.

Creación de un sistema de archivos en una partición

Nota
Asegúrese de instalar el paquete de utilidades de espacio de usuario correspondiente para el sistema de archivos elegido antes de reiniciar. Habrá un recordatorio para hacerlo cerca del final del proceso de instalación.

Para crear un sistema de archivos en una partición o volumen, existen utilidades de espacio de usuario disponibles para todos los sistemas de archivos. Hacer clic en el nombre del sistema de archivos de la tabla de abajo para obtener información de cada sistema de archivos:

Sistema de archivos Comando de creación ¿Dentro del entorno live? Paquete
btrfs mkfs.btrfs Si sys-fs/btrfs-progs
ext4 mkfs.ext4 Si sys-fs/e2fsprogs
f2fs mkfs.f2fs Si sys-fs/f2fs-tools
xfs mkfs.xfs Si sys-fs/xfsprogs
vfat mkfs.vfat Si sys-fs/dosfstools
NTFS mkfs.ntfs Si sys-fs/ntfs3g
Importante
El manual recomienda nuevas particiones como parte del proceso de instalación, pero es importante tener en cuenta que ejecutar cualquier comando mkfs borrará todos los datos contenidos en la partición. Cuando sea necesario, asegúrese de realizar una copia de seguridad adecuada de todos los datos que existan antes de crear algunos sistemas de archivos.

Por ejemplo, para tener la partición raíz (/dev/sda3) como xfs como se usa en la estructura de partición de ejemplo, los siguientes comandos deberían ser usados:

root #mkfs.xfs /dev/sda3

Sistema de archivos de partición del sistema EFI

La partición del sistema EFI (/dev/sda1) debe estar formateada como FAT32:

root #mkfs.vfat -F 32 /dev/sda1

Sistema de archivos de partición de arranque BIOS heredado

Los sistemas que arrancan a través de BIOS heredado con una etiqueta de disco MBR/DOS pueden usar cualquier formato de sistema de archivos admitido por el gestor de arranque.

Por ejemplo, para formatear con XFS:

root #mkfs.xfs /dev/sda1

Particiones ext4 pequeñas

Cuando se utiliza el sistema de archivos ext4 en una partición pequeña (menos de 8 GiB), el sistema de archivos debe crearse con las opciones adecuadas para reservar suficientes inodos. Esto se puede especificar usando la opción -T small:

root #mkfs.ext4 -T small /dev/<device>

Hacerlo cuadruplicará el número de inodos para un sistema de archivos determinado, ya que su "bytes por inodo" se reduce de uno cada 16 kB a uno cada 4 kB.

Activar la partición de intercambio

mkswap es la orden utilizada para inicializar particiones de intercambio:

root #mkswap /dev/sda2

Para activar la partición, use swapon:

root #swapon /dev/sda2

Este paso de 'activación' sólo es necesario porque la partición de intercambio se creó recientemente dentro del entorno live. Una vez que se haya reiniciado el sistema, siempre que la partición de intercambio esté definida correctamente dentro de fstab u otro mecanismo de montaje, el espacio de intercambio se activará automáticamente.

Montar la partición raíz

Nota
Las instalaciones que se iniciaron anteriormente, pero que no finalizaron el proceso de instalación, pueden reanudar la instalación desde este punto del manual. Utilice este enlace como enlace permanente: Las instalaciones reanudadas comienzan aquí.

Es posible que a ciertos entornos live les falte el punto de montaje sugerido para la partición raíz de Gentoo (/mnt/gentoo), o puntos de montaje para particiones adicionales creadas en la sección de particionamiento:

root #mkdir --parents /mnt/gentoo

Solo para instalaciones con EFI, el ESP debe montarse en alguna ubicación de la partición raíz:

root #mkdir --parents /mnt/gentoo/efi

Continúe creando puntos de montaje adicionales necesarios para cualquier partición adicional (personalizada) creada durante los pasos anteriores utilizando el comando mkdir.

Una vez creados los puntos de montaje, es hora de hacer que las particiones sean accesibles mediante el comando mount.

Monte la partición raíz:

root #mount /dev/sda3 /mnt/gentoo

Continúe montando particiones adicionales (personalizadas) según sea necesario usando el comando mount.

Nota
Si necesita que su /tmp/ resida en una partición separada, asegúrese de cambiar los permisos después de montarla:
root #chmod 1777 /mnt/gentoo/tmp
Lo mismo debe ser aplicado a /var/tmp.

Más adelante en las instrucciones, se montará el sistema de archivos proc (una interfaz virtual con el núcleo), así como otros pseudosistemas de archivos del núcleo. Pero primero se debe extraer el archivo de stage de Gentoo.





Elegir un empaquetado de stage

Consejo
On supported architectures, it is recommended for users targeting a desktop (graphical) operating system environment to use a stage file with the term desktop within the name. These files include packages such as sys-devel/llvm and dev-lang/rust-bin and USE flag tuning which will greatly improve install time.

The stage file acts as the seed of a Gentoo install. Stage files are generated with Catalyst by the Release Engineering Team. Stage files are based on specific profiles, and contain an almost-complete system.

When choosing a stage file, it's important to pick one with profile targets corresponding to the desired system type.

Nota
Técnicamente es posible cambiar una instalación de Gentoo en ejecución de OpenRC a systemd y viceversa. Sin embargo, cambiar requiere algo de esfuerzo y está fuera del alcance de este manual de instalación. Antes de descargar un empaquetado de stage decida si usará OpenRC o systemd como sistema de inicio y descargue el empaquetado de stage correspondiente.

La mayoría de los usuarios no deberían utilizar las opciones 'avanzadas' de los archivos de empaquetado ya que se utilizan para configuraciones específicas de software o de hardware.

OpenRC

OpenRC es un sistema de inicio basado en dependencias (responsable de iniciar los servicios del sistema una vez que se ha iniciado el núcleo) que mantiene compatibilidad con el programa de inicio proporcionado por el sistema, que normalmente se encuentra en /sbin/init. Es el sistema de inicialización nativo y original de Gentoo, pero también lo implementan algunas otras distribuciones de Linux y sistemas BSD.

OpenRC no funciona como reemplazo del archivo /sbin/init por defecto y es 100% compatible con los guiones de inicio de Gentoo. Esto significa que puede ser una solución para ejecutar las docenas de daemons en el repositorio de ebuilds de Gentoo.

systemd

systemd es un reemplazo moderno de init y rc de estilo SysV para sistemas Linux. La mayoría de las distribuciones Linux lo utilizan como sistema de inicio principal. systemd es totalmente compatible con Gentoo y funciona para el propósito previsto. Desafortunadamente, las secciones correspondientes del Manual de instalación para el sistema aún deben escribirse o están en proceso. Parece que aun falta un poco en el Manual para una guia de instalación con systemd, revise el artículo de systemd antes de solicitar ayuda.

Multilibrería (32 y 64 bits)

Nota
No todas las arquitecturas tienen una opción multilib. Muchas solo ejecutan código nativo. Multilib se aplica más comúnmente a amd64.

Elegir un archivo base de empaquetado para el sistema, puede ahorrar una cantidad de tiempo considerable más tarde durante el proceso de instalación, específicamente cuando es el momento de elegir un perfil del sistema. La selección de un archivo de empaquetado de stage afectará a la configuración futura del sistema y puede evitar más de un dolor de cabeza en el futuro. El empaquetado multilibrería utiliza librerías de 64 bits cuando es posible y únicamente hace uso de las versiones de 32 bits cuando es necesario por compatibilidad. Esta es una excelente opción para la mayoría de instalaciones ya que ofrece una gran flexibilidad de personalización en el futuro. Aquéllos usuarios que desean que sus sistemas puedan conmutar fácilmente entre perfiles querrán descargar la opción del empaquetado multilibrería para su arquitectura de procesador.

Consejo
Using multilib targets makes it easier to switch profiles later, compared to no-multilib

No multilibrería (64 bits puros)

Advertencia
Los lectores que acaban de empezar con Gentoo no deben elegir un empaquetado sin multilib a menos que sea absolutamente necesario. Migrar de un sistema sin multilib a uno multilib requiere un conocimiento extremadamente bueno de Gentoo y de la cadena de herramientas de nivel inferior (incluso puede hacer que nuestros desarrolladores de la cadena de herramientas se estremezcan un poco). No es para miedosos y está más allá del alcance de esta guía.

La selección de un empaquetado no multilib para que sea la base del sistema proporciona un entorno de sistema operativo completo de 64 bits. Esto hace que la capacidad de cambiar a perfiles multilib sea improbable, aunque técnicamente sigue siendo posible.

Descargar el empaquetado de stage (tarball)

Ajustar la Fecha/Hora correcta

Stage archives are generally obtained using HTTPS which requires relatively accurate system time. Clock skew can prevent downloads from working, and can cause unpredictable errors if the system time is adjusted by any considerable amount after installation.

Verifique la fecha y hora actuales ejecutando el comando date:

root #date
Mon Oct  3 13:16:22 PDT 2021

Si la fecha/hora que se muestra está desfasada por más de unos minutos, debe actualizarse con precisión mediante uno de los métodos que se indican a continuación.

Automático

Using NTP to correct clock skew is typically easier and more reliable than manually setting the system clock.

chronyd, part of net-misc/chrony can be used to update the system clock to UTC with:

root #ntpd -q -g
Importante
Systems without a functioning Real-Time Clock (RTC) must sync the system clock at every system start, and on regular intervals thereafter. This is also beneficial for systems with a RTC, as the battery could fail, and clock skew can accumulate.
Advertencia
Standard NTP traffic not authenticated, it is important to verify time data obtained from the network.

Manual

When NTP access is unavailable, date can be used to manually set the system clock.

Se recomienda el horario UTC para todos los sistemas Linux. Una zona horaria se definirá más adelante en la instalación que modificará el reloj para mostrar la hora local.

Para los sistemas que no tienen acceso a un servidor horario, el comando date también se puede usar para configurar el reloj del sistema. Utilizará el siguiente formato como argumento: sintaxis MMDDhhmmYYYY (Month, Day, hour, minute y Year).

Por ejemplo, para ajustar la fecha y hora a las 13:16 horas del 3 de octubre del 2021, ejecute:

root #date 100313162021

Vaya al punto de montaje de Gentoo en el que ha montado el sistema de archivos raíz (probablemente /mnt/gentoo):

root #cd /mnt/gentoo

Navegadores gráficos

Los usuarios que utilicen entornos con navegadores web gráficos no tendrán problema en copiar el URL de un fichero stage desde la sección de descargas del sitio web principal. Simplemente seleccione la pestaña apropiada, haga clic con el botón secundario del ratón en el fichero stage, entonces Copiar la ruta del enlace para copiar el enlace al portapapeles, a continuación pegue el enlace para la utilidad wget en la lína de órdenes para descargar el archivo comprimido stage:

root #wget <URL_DEL_STAGE_PEGADA>

Navegadores en la línea de órdenes

Los usuarios de Gentoo más tradicionales o los 'históricos' que trabajen exclusivamente con la línea de órdenes puede que prefieran utilizar links (www-client/links), un navegador no gráfico dirigido por menús. Para descargar un stage, navegue a la lista de servidores réplica de Gentoo de esta forma:

root #links https://www.gentoo.org/downloads/mirrors/

Para usar un proxy HTTP con links, pase la URL con la opción -http-proxy:

root #links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/

Junto a links existe también el navegador lynx (www-client/lynx). Al igual que links es un navegador de consola pero sin menús.

root #lynx https://www.gentoo.org/downloads/mirrors/

Si necesita pasar a través de un proxy, exporte las variables http_proxy y ftp_proxy:

root #export http_proxy="http://proxy.server.com:port"
root #export ftp_proxy="http://proxy.server.com:port"

Seleccione un servidor réplica cercano. Normalmente bastará con los servidores HTTP, sin embargo también están disponibles otros protocolos. Entre en el directorio releases/amd64/autobuilds/. En él deberían aparecer todos los archivos de stage disponibles (quizá almacenados en subdirectorios con el nombre de cada subarquitectura). Seleccione uno y pulse d para descargarlo.

Una vez haya finalizado la descarga del fichero stage, es posible verificar la integridad y validar los contenidos del stage comprimido. Los interesados pueden ir a la siguiente sección.

Para los que no estén interesados en verificar y validar el archivo stage pueden el navegador de línea de comandos pulsando q e ir directamente a la sección Extraer el stage comprimido.

Verificar y validar

Nota
La mayoría de los stages ahora tienen sufijo explícitamente con el tipo de sistema de inicio (openrc o systemd), aunque en algunas arquitecturas aún pueden faltar por ahora.

Al igual que con los CDs minimalistas de instalación, hay descargas disponibles para verificar y validar el archivo stage. Aunque estos pasos se pueden omitir, estos archivos se ofrecen a aquéllos usuarios que se preocupan por la legitimidad del archivo o archivos que se acaban de descargar.

root #wget https://distfiles.gentoo.org/releases/
  • Un archivo .CONTENTS que contiene un listado de todos los archivos contenidos dentro del empaquetado stage.
  • Un archivo .DIGESTS que contiene sumas de comprobación del archivo stage utilizando diferentes algoritmos.
  • Un archivo .DIGESTS.asc que, al igual que .DIGESTS, contiene sumas de comprobación del archivo stage utilizando diferentes algoritmos, y además está firmado criptográficamente para asegurar que es el proporcionado por el proyecto Gentoo.

Use openssl y compare la salida con la suma de comprobación proporcionada por el archivo .DIGESTS o .DIGESTS.asc.

Por ejemplo, para validar la suma de comprobación SHA512:

root #openssl dgst -r -sha512 stage3-amd64-<release>-<init>.tar.?(bz2|xz)

dgst instructs the openssl command to use the Message Digest sub-command, -r prints the digest output in coreutils format, and -sha512 selects the SHA512 digest.

Para validar la suma de comprobación Whirlpool:

root #openssl dgst -r -whirlpool stage3-amd64-<release>-<init>.tar.?(bz2|xz)

Compare la salida de estas órdenes con el valor registrado en los archivos .DIGESTS(.asc). Los valores deben coincidir, de lo contrario, los archivos descargados podrían estar corruptos (o el propio archivo digests).

Otra forma es usar la orden sha512sum:

root #sha512sum stage3-amd64-<release>-<init>.tar.?(bz2|xz)

The --check option instructs sha256sum to read a list of expected files and associated hashes, and then print an associated "OK" for each file that calculates correctly or a "FAILED" for files that do not.

Al igual que con el archivo ISO, puede también verificar la firma criptográfica del archivo .DIGESTS.asc mediante gpg para asegurarse de las sumas de comprobación no se han manipulado:

For official Gentoo live images, the sec-keys/openpgp-keys-gentoo-release package provides PGP signing keys for automated releases. The keys must first be imported into the user's session in order to be used for verification:

root #gpg --import /usr/share/openpgp-keys/gentoo-release.asc

For all non-official live images which offer gpg and wget in the live environment, a bundle containing Gentoo keys can be fetched and imported:

root #wget -O - https://qa-reports.gentoo.org/output/service-keys.gpg | gpg --import

Verify the signature of the tarball and, optionally, associated checksum files:

root #gpg --verify stage3-amd64-<release>-<init>.tar.?(bz2|xz){.DIGESTS.asc,}

If verification succeeds, "Good signature from" will be in the output of the previous command(s).

Las huellas digitales de las claves OpenPGP utilizadas para firmar los medios de lanzamiento se pueden encontrar en la página de firmas de medios de lanzamiento del servidor web Gentoo.

Instalar el Stage empaquetado (tarball)

Ahora desempaquete el stage descargado en el sistema. Use la utilidad tar para hacerlo:

root #tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner

Verifique que usa las opciones indicadas (xpf y --xattrs-include='*.*') en el comando. La x se usa para desempaquetar (extract), la p para preservar (preserve) los permisos y la f para decir que extraemos desde un archivo (file), no desde la entrada estándar. La opción --xattrs-include='*.*' es para que se incluyan también los atributos extendidos almacenados en todos los espacios de nombres en el archivo. Por último, --numeric-owner se utiliza para asegurarse de que los IDs del usuario y grupo de los ficheros que se extraen del fichero comprimido son los mismos que incluyó el equipo de ingeniería de liberaciones de Gentoo, incluso si algún usuario aventurero no está utilizando los entornos live oficiales de Gentoo.

  • x extract, instructs tar to extract the contents of the archive.
  • p preserve permissions.
  • v verbose output.
  • f file, provides tar with the name of the input archive.
  • --xattrs-include='*.*' Preserves extended attributes in all namespaces stored in the archive.
  • --numeric-owner Ensure that the user and group IDs of files being extracted from the tarball remain the same as Gentoo's release engineering team intended (even if adventurous users are not using official Gentoo live environments for the installation process).

Ahora que el fichero stage está desempaquetado, continúe con Configurar las opciones de compilación.

Configurar las opciones de compilación

Introducción

Para optimizar el sistema, es posible establecer variables que afecten al comportamiento de Portage, el administrador de paquetes con soporte oficial de Gentoo. Todas esas variables se pueden configurar como variables de entorno (usando export), pero la configuración a través de export no es permanente.

Nota
Técnicamente, las variables se pueden exportar a través del perfil de shell o archivos rc, sin embargo, esa no es la mejor manera para la administración básica del sistema.

Portage lee el archivo make.conf cuando se ejecuta, lo que cambiará su comportamiento durante su ejecución dependiendo de los valores guardados en el archivo. make.conf puede considerarse el archivo de configuración principal de Portage, así que trate su contenido con cuidado.

Consejo
Puede encontrar una lista comentada de todas las variables posibles en /mnt/gentoo/usr/share/portage/config/make.conf.example. Se puede encontrar documentación adicional sobre make.conf ejecutando man 5 make.conf.

Para una instalación exitosa de Gentoo, solo se deben configurar las variables que se mencionan a continuación.

Use su editor favorito (en esta guía usaremos nano) para modificar las variables de optimización que discutiremos en adelante.

root #nano -w /mnt/gentoo/etc/portage/make.conf

Observando el archivo make.conf.example es obvio cual es su estructura: las líneas que son comentarios comienzan con #, el resto definen variables usando la sintaxis VARIABLE="valor". Varias de estas variables se discuten a continuación.

CFLAGS y CXXFLAGS

Las variables CFLAGS y CXXFLAGS definen los parámetros de optimización para los compiladores GCC de C y de C++ respectivamente. Aunque generalmente se definen aquí, obtendrá el máximo rendimiento si optimiza estos parámetros para cada programa por separado. La razón es que cada programa es diferente. Sin embargo, no es manejable definir estos indicadores en el archivo make.conf.

En make.conf deberá definir los parámetros de optimización que se ajusten a su sistema de forma general. No coloque parámetros experimentales en esta variable; un nivel demasiado alto de optimización puede hacer que los programas funcionen mal (cuelgues, o incluso peor, funcionamientos erróneos).

No explicaremos todas las opciones posibles de optimización. Si quiere conocerlas todas, lea los Manuales en línea GNU o la página información de gcc (info gcc sólo es válido en un sistema Linux funcional). El archivo make.conf.example también contiene una gran cantidad de ejemplos e información; no olvide leerlo también.

El primer parámetro es -march= o -mtune=, el cual especifica el nombre de la arquitectura destino. Las posibles opciones se describen en el archivo make.conf.example (como comentarios). Un valor frecuentemente utilizado es native ya que indica al compilador que seleccione la arquitectura destino del sistema actual (en el que se está realizando la instalación).

Seguida de esta, está el parámetro -O (que es una O mayúscula, no un cero), que especifica la clase optimización de gcc. Las clases posibles son s (para tamaño optimizado), 0 (cero - para no optimizar), 1, 2 o incluso 3 para la optimización de velocidad (cada clase tiene los mismos parámetros que la anterior, más algunos extras). -O2 es la recomendación por defecto. Es conocido que -O3 provoca problemas cuando se utiliza globalmente en el sistema, por esto se recomienda quedarse con -O2.

Otros parámetros de optimización bastante populares son los -pipe (usar tuberías en lugar de archivos temporales para la comunicación entre las diferentes etapas de compilación). No tiene ningún impacto sobre le código generado, pero usa más memoria. En sistemas con poca memoria, el proceso del compilador podría ser terminado. En ese caso, no use este parámetro.

Usar -fomit-frame-pointer (el cual no mantiene el puntero de marco en un registro para aquellas funciones que no lo necesiten) podría tener graves repercusiones en la depuración de errores en aplicaciones.

Cuando defina las variables CFLAGS y CXXFLAGS, debería combinar varios parámetros de optimización en una sóla cadena. Los valores por defecto que trae el archivo stage3 una vez descomprimido deberían ser suficientemente buenos. Lo siguiente es simplemente un ejemplo:

CÓDIGO Ejemplo de CFLAGS y CXXFLAGS variables
# Configuraciones del compilador a aplicar en cualquier lenguaje
COMMON_CFLAGS="-march=native -O2 -pipe"
# Use los mismos valores en ambas variables
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${CFLAGS}"
Consejo
A pesar de que el artículo sobre la optimización de GCC contiene más información sobre cómo las distintas opciones de compilación pueden afectar a un sistema, el artículo sobre CFLAGS seguras puede resultar más práctico para los que se inician en la optimización de su sistema.

MAKEOPTS

La variable MAKEOPTS define cuántas compilaciones paralelas deben ocurrir al instalar un paquete. Una buena opción es la menor de: la cantidad de hilos de procesamiento tiene la CPU o la RAM total del sistema dividida por 2 GiB.

Further, as of Portage 3.0.53[1], if left undefined, Portage's default behavior is to set the MAKEOPTS load-average value to the same number of threads returned by nproc.

A good choice is the smaller of: the number of threads the CPU has, or the total amount of system RAM divided by 2 GiB.

Advertencia
El uso de una gran cantidad de trabajos puede afectar significativamente el consumo de memoria. Una buena recomendación es tener al menos 2 GiB de RAM para cada trabajo especificado (por ejemplo, -j6 requiere al menos 12 GiB). Para evitar quedarse sin memoria, reduzca el número de trabajos para que se ajusten a la memoria disponible.
Consejo
Cuando se utilizan emerges en paralelo (--jobs), la cantidad efectiva de trabajos ejecutados puede crecer exponencialmente (hasta hacer que los trabajos se multipliquen por los trabajos de los emerges). Esto se puede solucionar ejecutando una configuración distcc solo para localhost que limitará el número de instancias del compilador por host.
CÓDIGO Ejemplo de declaración MAKEOPTS en make.conf
MAKEOPTS="-j2"

Search for MAKEOPTS in man 5 make.conf for more details.

Preparados, listos, ¡ya!

Actualice /mnt/gentoo/etc/portage/make.conf con sus propios parámetros y guarde los cambios (los usuarios de nano deben usar Ctrl + x).




Enjaulamiento

Copiar la información DNS

Aún queda una cosa que hacer antes de entrar en el nuevo entorno, copiar la información sobre los DNS en /etc/resolv.conf. Necesita hacer esto para asegurarse de que la red continúe funcionando después de entrar en el nuevo entorno. /etc/resolv.conf contiene los servidores de nombres para su red.

Para copiar esta información, se recomienda pasar la opción --dereference en la orden cp.Esto asegura que, si /etc/resolv.conf es un enlace simbólico, se copia el archivo al que apunta el enlace y no el propio enlace. En caso contrario, en el nuevo entorno, el enlace simbólico podría apuntar a un archivo inexistente (ya que lo mas probable es que los archivos apuntados no estén disponible dentro del nuevo entorno).

root #cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

Montar los sistemas de archivos necesarios

En breve, cambiaremos la raíz de Linux a la nueva localización. Para asegurarse de que el nuevo entorno funciona correctamente, necesitaremos disponer de ciertos sistemas de archivos también en la nueva localización.

Los sistemas de archivos que deben estar disponibles son:

  • /proc/ que es un pseudosistema de archivos (parecen archivos normales, pero en la actualidad son generados dinámicamente) a través del cual el núcleo Linux expone información al entorno
  • /sys/ que es un pseudosistema de archivos, como /proc/ al que podía haber sustituido y que es mas estructurado que /proc/
  • /dev/ que es un systema de archivos normal, parcialmente gestionado por el gestor de dispositivos Linux (normalmente udev), que contiene todos los archivos de dispositivo
  • /run/ es un sistema de archivos temporal usado para archivos generados en tiempo de ejecución, como archivos PID o archivos de bloqueo

La ubicación /proc/ se montará en /mnt/gentoo/proc/ mientras que los otros serán montados mediante enlace. Esto último quiere decir que, por ejemplo, /mnt/gentoo/sys/ será realmente el actual /sys/ (será sólo un segundo punto de entrada al mismo sistema de archivos) mientras que /mnt/gentoo/proc/ es un nuevo montaje (instancia por así decirlo) del sistema de archivos.

Consejo
If using Gentoo's install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.
root #mount --types proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev
root #mount --bind /run /mnt/gentoo/run
root #mount --make-slave /mnt/gentoo/run
Nota
Las operaciones --make-rslave son necesarias para dar soporte a systemd mas adelante en la instalación.
Advertencia
Cuando se utilicen medios de instalación que no sean de Gentoo, podría no ser suficiente. Algunas distribuciones crean el enlace simbólico /dev/shm a /run/shm/ el cual ya no será válido después del chroot. Hacer que /dev/shm/ sea un apropiado montaje tmpfs puede resolver este problema:
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm

Asegúrese también de asignale permisos 1777:

root # chmod 1777 /dev/shm /run/shm

Entrar en el nuevo entorno

Ahora que todas las particiones están inicializadas y el sistema base instalado, es hora de entrar en el nuevo entorno de instalación haciendo chrooting en él. Esto significa que la sesión cambiará su raíz (la ubicación de mayor nivel que puede ser accedida) desde el entorno de instalación actual (CD de instalación u otro medio de instalación) hasta el sistema de instalación (es decir, las particiones inicializadas). De ahí el nombre, change root (cambiar raíz) o chroot.

El enjaulamiento (chroot) se hace en tres pasos:

  1. Se cambia la raíz desde / (en el medio de instalación) a /mnt/gentoo/ (en las particiones) utilizando chroot
  2. Se cargan en memoria algunas definiciones (ofrecidas por /etc/profile) mediante la orden source.
  3. Se redefine el símbolo de espera de órdenes (prompt) primario que nos hará recordar que nos encontramos en un entorno enjaulado (chroot).
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) ${PS1}"

Desde este momento, todas las acciones realizadas lo serán en el nuevo entorno Gentoo Linux. Por supuesto aún no hemos terminado, ¡Todavía quedan unas cuantas secciones!

Consejo
Si la instalación de Gentoo se interrumpe en algún momento posterior, debería ser posible 'continuarla' desde este paso. ¡No es necesario particionar los discos otra vez! Simplemente monte la partición raíz y siga los pasos anteriores comenzando desde copiar la información DNS hasta entrar en el nuevo entorno. Esto también se utiliza para arreglar problemas con el cargador de arranque. Mas información en el artículo chroot.

Preparing for a bootloader

Now that the new environment has been entered, it is necessary to prepare the new environment for the bootloader. It will be important to have the correct partition mounted when it is time to install the bootloader.

UEFI systems

For UEFI systems, /dev/sda1 was formatted with the FAT32 filesystem and will be used as the EFI System Partition (ESP). Create a new /efi directory (if not yet created), and then mount ESP there:

root #mkdir /efi # May have been created in a previous step
root #mount /dev/sda1 /efi

DOS/Legacy BIOS systems

For DOS/Legacy BIOS systems, the bootloader will be installed into the /boot directory, therefore mount as follows:

root #mount /dev/sda1 /boot

Configurar Portage

Repositorio de ebuilds de Gentoo

Un segundo paso importante en la selección de servidores replica consiste en configurar el repositorio de ebuilds de Gentoo a través del archivo /etc/portage/repos.conf/gentoo.conf. Este archivo contiene la información de sincronización necesaria para actualizar el repositorio de paquetes (la colección de ebuilds y archivos relacionados que contienen toda la información que Portage necesita para descargar e instalar paquetes de software).

La configuración del repositorio se puede hacer en unos sencillos pasos. Primero, si no existe, cree el directorio repos.conf:

root #mkdir --parents /mnt/gentoo/etc/portage/repos.conf

Luego, copie el archivo de configuración del repositorio de Gentoo proporcionado por Portage al directorio (recien creado) repos.conf:

root #cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Visualícelo con un editor de texto o usando la orden cat. El contenido del archivo debe estar en formato .ini y tener este aspecto:

ARCHIVO /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4

El valor por defecto de la variable sync-uri listado antes determinará la localización de un servidor réplica basado en una rotación de servidores. Esto ayudará aliviando la presión sobre el ancho de banda en la infraestructura de Gentoo y proporcionará un uso a prueba de fallos en caso de caida puntual de un servidor replica. Es recomendable mantener la URI por defecto a menos que se utilice un servidor réplica de Portage privado y local.

Consejo
La especificación para la API del complemento de sincronización de Portage se puede encontrar en el Artículo Portage Sync.

Instalar una instantánea de repositorio de ebuilds de Gentoo desde la web

El siguiente paso es instalar una instantánea del repositorio de ebuilds de Gentoo. Esta instantánea contiene una colección de ficheros que informa a Portage sobre los títulos de software disponibles (para su instalación), qué perfiles puede seleccionar el administrador del sistema, artículos de noticias específicas de paquetes o perfiles, etc.

Se recomienda utilizar emerge-webrsync para aquéllos que se encuentren detrás de cortafuegos restrictivos (utiliza los protocolos HTTP/FTP para descargar la instantánea) y ahorra ancho de banda de red. Los lectores que no tengan limitaciones en el ancho de banda pueden saltar a la siguiente sección.

Esto recuperará la última instantánea (que se libera todo los días) desde uno de los servidores réplica de Gentoo e instalarla en el sistema:

root #emerge-webrsync
Nota
Durante esta operación, emerge-webrsync podría indicar que la localización /var/db/repos/gentoo/ no existe. Esto es normal y no debe preocupar - la herramienta creará la localización.

A partir de este punto Portage podría indicar que se recomienda realizar algunas actualizaciones. Esto es debido a que algunos paquetes de sistema que se han instalado mediante un archivo stage disponen de versiones más actuales y ahora Portage detecta los nuevos paquetes consultando la instantánea del repositorio. Por el momento se pueden ignorar las actualizaciones de los paquetes hasta que la instalación de Gentoo haya finalizado.


Opcional: Seleccionar los servidores réplica

Para poder descargar el código fuente rápidamente se recomienda seleccionar un servidor réplica rápido. Portage comprobará en su archivo make.conf la variable GENTOO_MIRRORS y utilizará los servidores que se especifican allí. Puede navegar por la lista de servidores de réplica de Gentoo y buscar un servidor (o servidores) que estén cerca de su localización (ya que estos suelen resultar los más rápidos). Por otra parte, nosotros le facilitamos una buena herramienta llamada mirrorselect la cual proporciona una interfaz amigable para seleccionar los servidores réplicas que quiera. Simplemente navegue a los servidores réplica que desee y pulse Spacebar para seleccionar uno o más servidores.

A tool called mirrorselect provides a pretty text interface to more quickly query and select suitable mirrors. Just navigate to the mirrors of choice and press Spacebar to select one or more mirrors.

root #mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

Alternatively, a list of active mirrors are available online.

Opcional: Actualizar el repositorio de ebuilds de Gentoo

Puede actualizar el repositorio de ebuilds de Gentoo a la última versión. La orden emerge-webrsync anterior habrá instalado una instantanea muy reciente (normalmente inferior a 24 horas) de manera que claramente este paso es opcional.

Suponiendo que hubiera una necesidad de tener las últimas actualizaciones de los paquetes (hasta hace 1 hora) entonces use emerge --sync. Esta orden utilizará el protocolo rsync para actualizar el repositorio de ebuilds de Gentoo (que obtuvo anteriormente mediante emerge --sync) a su estado mas reciente.

root #emerge --sync

En terminales lentos como algunos framebuffers o consolas seriales, es aconsejable usar la opción --quiet para aumentar la velocidad del proceso:

root #emerge --sync --quiet

Leer los elementos de noticias

Cuando se sincroniza el repositorio de ebuilds de Gentoo, Portage puede mostrar mensajes informativos de salida similares a los siguientes:

* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.

Los elementos de noticias se crearon para ofrecer un medio de comunicación en el que se incluyeran mensajes críticos a los usuarios a través del repositorio de ebuilds de Gentoo. Para gestionarlos necesitará utilizar eselect news. La aplicación eselect es una utilidad específica de Gentoo que presenta una interfaz de gestión común para la administración del sistema. En este caso se ha pedido a eselect que use el módulo news.

Para el módulo news hay tres operaciones que son las mas usadas:

  • Con list se muestra un sumario de las noticias disponibles
  • Con read se leen las noticas
  • Con purge se pueden eliminar noticias que una vez leidas ya no sea necesario volverlas a leer mas.
root #eselect news list
root #eselect news read

Se puede obtener más información sobre el lector de noticias en la página del manual:

root #man news.eselect

Elegir el perfil adecuado

Consejo
Desktop profiles are not exclusively for desktop environments. They are also suitable for minimal window managers like i3 or sway.

Un perfil (profile) es uno de los bloques de construcción en cualquier sistema Gentoo. No solamente especifica unos valores predeterminados para USE, CFLAGS , y otras variables importantes, también bloquea sistema para ciertos rangos de versiones de algunos paquetes. Estas configuraciones son todas mantenidas por los desarrolladores de Portage de Gentoo.

Se puede ver el perfil que el sistema está utilizado actualmente con eselect, en este caso usando el módulo profile:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/17.1 *
  [2]   default/linux/amd64/17.1/desktop
  [3]   default/linux/amd64/17.1/desktop/gnome
  [4]   default/linux/amd64/17.1/desktop/kde
Nota
La salida de la orden anterior es solo un ejemplo y cambiará a lo largo del tiempo.
Nota
Cuando se use systemd, asegúrese que el nombre del perfil incluye systemd. En caso contrario, asegúrese que en nombre del perfil no incluye systemd.

Como se puede ver, también existen sub-perfiles desktop (escritorio) disponibles para algunas arquitecturas.

Advertencia
La actualización de perfiles no debe tomarse a la ligera. Cuando seleccione el perfil inicial, asegúrese de usar un perfil que corresponda a la misma versión que el usado en el stage3 inicial (p. ej. 17.1). Cada nueva versión de perfil se anuncia mediante un elemento de noticias (news) que contiene instrucciones de migración. Asegúrese de leerlo y seguirlo antes de cambiar a un nuevo perfil.

Después de revisar los perfiles disponibles para la arquitectura amd64, los usuarios pueden elegir usar un perfil diferente para el sistema:

root #eselect profile set 2


No multilibrería

Para seleccionar un entorno puro de 64 bits sin aplicaciones ni bibliotecas de 32 bits, utilice un perfil no multilibrería:

root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/17.1 *
  [2]   default/linux/amd64/17.1/desktop
  [3]   default/linux/amd64/17.1/desktop/gnome
  [4]   default/linux/amd64/17.1/desktop/kde
  [5]   default/linux/amd64/17.1/no-multilib

A continuación seleccione el perfil no-multilib:

root #eselect profile set 5
root #eselect profile list
Available profile symlink targets:
  [1]   default/linux/amd64/17.1
  [2]   default/linux/amd64/17.1/desktop
  [3]   default/linux/amd64/17.1/desktop/gnome
  [4]   default/linux/amd64/17.1/desktop/kde
  [5]   default/linux/amd64/17.1/no-multilib *



Nota
El subperfil developer es específico para desarrolladores de Gentoo Linux y no está dirigido a usuarios comunes.

Optional: Adding a binary package host

Since December 2023, Gentoo's Release Engineering team has offered an official binary package host (colloquially shorted to just "binhost") for use by the general community to retrieve and install binary packages (binpkgs).[1]

Adding a binary package host allows Portage to install cryptographically signed, compiled packages. In many cases, adding a binary package host will greatly decrease the mean time to package installation and adds much benefit when running Gentoo on older, slower, or low power systems.

Repository configuration

The repository configuration for a binhost is found in Portage's /etc/portage/binrepos.conf/ directory, which functions similarly to the configuration mentioned in the Gentoo ebuild repository section.

When defining a binary host, there are two important aspects to consider:

  1. The architecture and profile targets within the sync-uri value do matter and should align to the respective computer architecture (amd64 in this case) and system profile selected in the Choosing the right profile section.
  2. Selecting a fast, geographically close mirror will generally shorten retrieval time. Review the mirrorselect tool mentioned in the Optional: Selecting mirrors section or review the online list of mirrors where URL values can be discovered.

ARCHIVO /etc/portage/binrepos.conf/gentoo.confCDN-based binary package host example
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/<arch>/binpackages/<profile>/x86-64/

Installing binary packages

Portage will compile packages from code source by default. It can be instructed to use binary packages in the following ways:

  1. The --getbinpkg option can be passed when invoking the emerge command. This method of for binary package installation is useful to install only a particular binary package.
  2. Changing the system's default via Portage's FEATURES variable, which is exposed through the /etc/portage/make.conf file. Applying this configuration change will cause Portage to query the binary package host for the package(s) to be requested and fall back to compiling locally when no results are found.

For example, to have Portage always install available binary packages:

ARCHIVO /etc/portage/make.confConfigure Portage to use binary packages by default
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"

Additional Portage features will be discussed in the the next chapter of the handbook.

Configurar la variable USE

La variable USE es una de las más importantes que Gentoo proporciona a sus usuarios. Muchos programas se pueden compilar con o sin soporte opcional para ciertas cosas. Por ejemplo, algunos programas se pueden compilar con soporte para GTK+, o con soporte para QT. Otros programas se pueden compilar con o sin soporte SSL. Algunos programas incluso se pueden compilar con soporte framebuffer (svgalib) en lugar de soporte X11 (servidor X).

Muchas distribuciones compilan sus paquetes con el mayor soporte posible, aumentando el tamaño de los programas y su tiempo de carga, sin mencionar una cantidad enorme de dependencias. Con Gentoo se puede definir con que opciones debe ser compilado un paquete. Ahí es donde actúa USE.

En la variable USE se definen palabras clave que son transformadas en opciones de compilación. Por ejemplo ssl compilará los programas que lo requieran con soporte SSL.-X quitara el soporte para el servidor X (nótese el signo menos delante). gnome gtk -kde -qt5 compilará los programas con soporte para GNOME (y GTK), pero sin soporte para KDE (y Qt), haciendo su sistema completamente adaptado para GNOME (siempre que se use una arquitectura que lo soporte).

Los valores por defecto de la variable USE se encuentran en los archivos make.defaults del perfil Gentoo que use su sistema. Gentoo usa un (complejo) sistema de herencia en sus perfiles, que no podemos profundicar en esta etapa. La manera mas fácil de conocer la configuración actual de USE es ejecutar emerge --info y fijarse en la línea que comienza con USE:

root #emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Nota
El ejemplo anterior está truncado la lista actual de valores para USE es mucho mucho mas larga.

Puede encontrar una descripción completa sobre la variable USE en el propio sistema en /var/db/repos/gentoo/profiles/use.desc.

root #less /var/db/repos/gentoo/profiles/use.desc

Dentro de la orden less puede desplazarse arriba y abajo utilizando las teclas y y salir pulsando q.

Como ejemplo, se muestran algunas opciones USE para un sistema basado en KDE con DVD, ALSA y soporte para grabar CDs:

root #nano -w /etc/portage/make.conf
ARCHIVO /etc/portage/make.confConfigurar ajuste para KDE/Plasma con soporte para DVD, ALSA y grabación de CDs
USE="-gtk -gnome qt5 kde dvd alsa cdr"

Cuando se define un valor USE en /etc/portage/make.conf, se "agrega" a la lista de valores USE del sistema. Los valores USE se pueden eliminar globalmente agregando un signo menos - delante del valor en la lista. Por ejemplo, para deshabilitar la compatibilidad con entornos gráficos X, se puede configurar -X:

ARCHIVO /etc/portage/make.confIgnorar valores por defecto para USE
USE="-X acl alsa"
Advertencia
Aunque es posible, configurar -* (que deshabilitará todos los valores USE excepto los especificados en make.conf) está "firmemente" desaconsejado y es imprudente. Los desarrolladores de ebuilds eligen ciertos valores USE predeterminados en ebuilds para evitar conflictos, mejorar la seguridad y evitar errores, entre otras razones. Deshabilitar "todos" los valores USE anulará el comportamiento predeterminado y puede causar problemas importantes.

CPU_FLAGS_*

Algunas arquitecturas (incluyendo AMD64/X86, ARM, PPC) tienen una variable USE_EXPAND llamada CPU_FLAGS_ARCH (reemplace ARCH con la arquitectura del sistema relevante según corresponda).

Importante
Do not be confused! AMD64 and X86 systems share some common architecture, so the proper variable name for AMD64 systems is CPU_FLAGS_X86.

Se usa para configurar la construcción para compilar en código ensamblador específico u otro intrínseco, generalmente escritos a mano o de otra manera adicional, y no es lo mismo que pedirle al compilador que genere un código optimizado para una determinada característica de la CPU.

Users should set this variable in addition to configuring their COMMON_FLAGS as desired.

Se necesitan algunos pasos para configurar esto:

root #emerge --ask app-portage/cpuid2cpuflags

Inspeccione la salida manualmente si tiene curiosidad:

root #cpuid2cpuflags

Luego copie la salida en package.use:

root #echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags

VIDEO_CARDS

La variable VIDEO_CARDS USE_EXPAND debe configurarse adecuadamente según la GPU disponible. La Guía de Xorg explica cómo hacerlo. No es necesario configurar VIDEO_CARDS para una instalación de solo consola.

Below is an example of a properly set VIDEO_CARDS variable. Substitute the name of the driver(s) to be used.

ARCHIVO /etc/portage/make.conf
VIDEO_CARDS="amdgpu radeonsi"

Details for various GPU(s) can be found at the AMDGPU, Intel, Nouveau (Open Source), or NVIDIA (Proprietary) articles.

Opcional: Configurar la variable ACCEPT_LICENSE

Starting with Gentoo Linux Enhancement Proposal 23 (GLEP 23), a mechanism was created to allow system administrators the ability to "regulate the software they install with regards to licenses... Some want a system free of any software that is not OSI-approved; others are simply curious as to what licenses they are implicitly accepting."[2] With a motivation to have more granular control over the type of software running on a Gentoo system, the ACCEPT_LICENSE variable was born.

Portage busca en ACCEPT_LICENSE qué paquetes se permite instalar. Para mostrar el valor actual que afecta a todo el sistema, lanzar:
user $portageq envvar ACCEPT_LICENSE
@FREE

Los grupos de licencias definidos en el repositorio Gentoo, gestionados por el Proyecto Gentoo Licencias, son:

Nombre del Grupo Descripción
@GPL-COMPATIBLE Licencias compatibles con GPL aprobadas por la [a_license 1]
@FSF-APPROVED Licencias de software libre aprobadas por la FSF (incluye @GPL-COMPATIBLE)
@OSI-APPROVED Licencias aprobadas por la Open Source Initiative [a_license 2]
@MISC-FREE Varias licencias que son probablemente software libre, i.e. siguel la Free Software Definition [a_license 3] pero no han sido aprobadas ni por la FSF ni por la OSI
@FREE-SOFTWARE Combina @FSF-APPROVED, @OSI-APPROVED y @MISC-FREE
@FSF-APPROVED-OTHER Licencias aprobadas FSF para "documentación libre" y "obras de uso práctico aparte de software y documentación" (incluyendo fuentes -fonts-)
@MISC-FREE-DOCS Varias licencias para documentos libres y otras obras (incluyendo fuentes -fonts-) que siguen la definición libre [a_license 4] pero no están relacionadas en @FSF-APPROVED-OTHER
@FREE-DOCUMENTS Combina @FSF-APPROVED-OTHER y @MISC-FREE-DOCS
@FREE Metaconjunto de todas las licencia con la libertad de usar, copiar, modificar y compartir esas modificaciones. Combina @FREE-SOFTWARE y @FREE-DOCUMENTS
@BINARY-REDISTRIBUTABLE Licencias que permite al menos la libre distribución del software en forma binaria. Incluye @FREE
@EULA Acuerdo de licencia que restringe derechos al usuario. Son mas restrictivas que "todo los derechos reservados" o las que requieren aprobación explícita

Some common license groups include:

A list of software licenses grouped according to their kinds.
Name Description
@GPL-COMPATIBLE GPL compatible licenses approved by the Free Software Foundation [a_license 5]
@FSF-APPROVED Free software licenses approved by the FSF (includes @GPL-COMPATIBLE)
@OSI-APPROVED Licenses approved by the Open Source Initiative [a_license 6]
@MISC-FREE Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 7] but are not approved by either FSF or OSI
@FREE-SOFTWARE Combines @FSF-APPROVED, @OSI-APPROVED, and @MISC-FREE.
@FSF-APPROVED-OTHER FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts)
@MISC-FREE-DOCS Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 8] but are NOT listed in @FSF-APPROVED-OTHER.
@FREE-DOCUMENTS Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS.
@FREE Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS.
@BINARY-REDISTRIBUTABLE Licenses that at least permit free redistribution of the software in binary form. Includes @FREE.
@EULA License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval

Currently set system wide acceptable license values can be viewed via:

user $portageq envvar ACCEPT_LICENSE
@FREE

As visible in the output, the default value is to only allow software which has been grouped into the @FREE category to be installed.

Specific licenses or licenses groups for a system can be defined in the following locations:

  • para todo el sistema in the profile
  • para todo el sistema in /etc/portage/make.conf
  • por paquete in /etc/portage/package.license.

Opcionalmente, anule el valor predeterminado aceptado para todo el sistema en los perfiles cambiando /etc/portage/make.conf.

ARCHIVO /etc/portage/make.confEjemplo de cómo aceptar licencias con ACCEPT_LICENSE para todo el sistema
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"

Opcionalmente, también se pueden definir las licencias aceptadas por paquete, como se muestra en este ejemplo:

ARCHIVO /etc/portage/package.license/kernelEjemplo de cómo aceptar licencias por paquete
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
root #mkdir /etc/portage/package.license

Software license details for an individual Gentoo package are stored within the LICENSE variable of the associated ebuild. One package may have one or many software licenses, therefore it be necessary to specify multiple acceptable licenses for a single package.

ARCHIVO /etc/portage/package.license/kernelAccepting licenses on a per-package basis
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Importante
La variable LICENSE en un ebuild es solo una indicación para los usuarios y desarrolladores de Gentoo. No es una obligación legal y no garantiza que así se materializará en la realidad. No confíe en ella y compruebe el contenido completo del paquete, incluyendo todos los archivos que se usen.

Actualizar el conjunto @world

El siguiente paso es necesario para que el sistema pueda aplicar las actualizaciones o cambios en las configuraciones USE que hayan aparecido desde que el stage3 fue construido y desde cualquier selección de perfil:

  1. A profile target different from the stage file has been selected.
  2. Additional USE flags have been set for installed packages.

Readers who are performing an 'install Gentoo speed run' may safely skip @world set updates until after their system has rebooted into the new Gentoo environment.

Readers who are performing a slow run can have Portage perform updates for package, profile, and/or USE flag changes at the present time:

root #emerge --ask --verbose --update --deep --newuse @world

Removing obsolete packages

It is important to always depclean after system upgrades to remove obsolete packages. Review the output carefully with emerge --depclean --pretend to see if any of the to-be-cleaned packages should be kept if personally using them. To keep a package which would otherwise be depcleaned, use emerge --noreplace foo.

root #emerge --ask --pretend --depclean

If happy, then proceed with a real depclean:

root #emerge --ask --depclean
Consejo
Si se ha seleccionado un perfil de entorno de escritorio máximo, este paso puede aumentar en gran medida la cantidad de tiempo necesario para el proceso de instalación. Los impacientes deben aplicar esta 'regla de oro': cuanto mas corto el nombre del perfil menos específico es el conjunto @world del sistema; cuanto menos específico sea el conjunto @world, menos paquetes necesita el sistema. En otras palabras:
  • Seleccionar default/linux/amd64/17.1 requerirá muy pocos paquetes a actualizar, mientras
  • Seleccionar default/linux/amd64/17.1/desktop/gnome/systemd requerirá muchos paquetes a instalar ya que el sistema de inicio cambia de OpenRC a systemd, y se instalará el entorno de escritorio GNOME.


Zona horaria

Nota
This step does not apply to users of the musl libc. Users who do not know what that means should perform this step.

Por favor, evite las zonas horarias listadas en /usr/share/zoneinfo/Etc/GMT* ya que sus nombres no indican las zonas esperadas. Por ejemplo, GMT-8 es en realidad GMT+8.

Seleccione la zona horaria para su sistema. Busque las zonas horarias disponibles en /usr/share/zoneinfo/:

root #ls /usr/share/zoneinfo
root #ls -l /usr/share/zoneinfo/Europe/
total 256
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Amsterdam
-rw-r--r-- 1 root root 1742 Dec  3 17:19 Andorra
-rw-r--r-- 1 root root 1151 Dec  3 17:19 Astrakhan
-rw-r--r-- 1 root root 2262 Dec  3 17:19 Athens
-rw-r--r-- 1 root root 3664 Dec  3 17:19 Belfast
-rw-r--r-- 1 root root 1920 Dec  3 17:19 Belgrade
-rw-r--r-- 1 root root 2298 Dec  3 17:19 Berlin
-rw-r--r-- 1 root root 2301 Dec  3 17:19 Bratislava
-rw-r--r-- 1 root root 2933 Dec  3 17:19 Brussels
...

Supuesto de zona horaria como "Europe/Brussels".

OpenRC

Escribimos el nombre de la zona horaria en el archivo /etc/timezone.

root #echo "Europe/Brussels" > /etc/timezone

A continuación, reconfigure el paquete sys-libs/timezone-data, que actualizará por nosotros el archivo /etc/localtime basándose en la entrada /etc/timezone. La biblioteca C del sistema utiliza el fichero /etc/localtime para conocer la zona horaria en la que se encuentra el sistema.

root #emerge --config sys-libs/timezone-data
Nota
The /etc/localtime file is used by the system C library to know the timezone the system is in.

systemd

Se emplea una manera ligeramente diferente cuando se utiliza systemd. Se genera un enlace simbólico:

root #ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime

Después, cuando systemd se esté ejecutando, la zona horaria y las configuraciones relacionadas se pueden configurar con el comando timedatectl.

Configurar localizaciones

Nota
Este paso no se aplica a los usuarios de musl libc. Los usuarios que no saben lo que eso significa deben realizar este paso.

Generación de localizaciones

La mayoría de usuarios necesitarán usar únicamente una o dos localizaciones (locales) en su sistema.

Las localizaciones no sólo especifican el idioma que el usuario debe usar para interactuar con sistema, sino también las reglas para ordenar cadenas, presentar fechas y horas, etc. Los nombres de las localizaciones son sensibles a mayúsculas y deben se escritas exactamente como se ha indicado. Una lista completa de las localizaciones disponibles se puede encontrar en el archivo /usr/share/i18n/SUPPORTED.

Las localizaciones soportadas por un sistema debe estar definidas en el archivo /etc/locale.gen.

root #nano -w /etc/locale.gen

Las siguientes localizaciones son un ejemplo de como disponer tanto de Inglés (Estados Unidos) como de Alemán (Alemán/Alemania) junto con los formatos de caracteres (como UTF-8).

ARCHIVO /etc/locale.genHabilitar las localizaciones US y ES con los formatos de carácter apropiados
en_US ISO-8859-1
en_US.UTF-8 UTF-8
es_ES ISO-8859-1
es_ES.UTF-8 UTF-8
Advertencia
Se recomienda firmemente añadir al menos una localización UTF-8 ya que muchas aplicaciones pueden necesitarla para ser construidas correctamente.

El siguiente paso es ejecutar la orden locale-gen. Esta ordene genera las localizaciones especificadas en el archivo /etc/locale.gen.

root #locale-gen

Para verificar que las localizaciones seleccionadas están ahora disponibles, ejecute locale -a.

On systemd installs, localectl can be used, e.g. localectl set-locale ... or localectl list-locales.

Selección de localización

Una vez hecho esto, es hora de definir los ajustes de localización para todo el sistema. De nuevo usaremos eselect para ello, ahora con el módulo locale.

Con eselect locale list se muestran las opciones disponibles:

root #eselect locale list
Available targets for the LANG variable:
  [1] C
  [2] c.utf8
  [3] en_US
  [4] en_US.iso88591
  [5] en_US.utf8
  [6] es_ES
  [7] es_ES.iso88591
  [8] es_ES.iso885915
  [9] es_ES.utf8
 [10] POSIX
  [ ] (free form)

Con eselect locale set <NÚMERO> se puede seleccionar la localización correcta:

root #eselect locale set 9

Se puede realizar también manualmente usando el archivo /etc/env.d/02locale y para Systemd el archivo /etc/locale.conf:

ARCHIVO /etc/env.d/02localeDefinición de la localización del sistema manualmente
LANG="de_DE.UTF-8"
LC_COLLATE="C.UTF-8"

La configuración de localizaciones previene mensajes de advertencia o error durante la compilación del núcleo y otro software más adelante durante la instalación.

Ahora recargue sus variables de entorno:

root #env-update && source /etc/profile && export PS1="(chroot) ${PS1}"

Para obtener orientación adicional acerca del proceso de selección de configuración regional, lea también la Guía de localización y la guía UTF-8.





Opcional: Instalar firmware y/o microcódigo

Firmware

Linux Firmware

Antes de comenzar a configurar las secciones del núcleo, es conveniente tener en cuenta que algunos dispositivos físicos requieren la instalación de firmware adicional, a veces no compatible con FOSS, en el sistema antes de que funcionen correctamente. Este suele ser el caso de las interfaces de red inalámbrica que se encuentran comúnmente en las computadoras de escritorio y portátiles. Los chips de video modernos de proveedores como AMD, Nvidia e Intel, a menudo también requieren archivos de firmware externos para ser completamente funcionales. La mayoría del firmware para dispositivos hardware modernos se puede encontrar en el paquete sys-kernel/linux-firmware.

Se recomienda tener instalado el paquete sys-kernel/linux-firmware antes del reinicio inicial del sistema para tener el firmware disponible en caso de que sea necesario:

root #emerge --ask sys-kernel/linux-firmware
Nota
La instalación de determinados paquetes de firmware suele requerir la aceptación de las licencias de firmware asociadas. Si es necesario, visite la sección de manejo de licencias del Manual para obtener ayuda sobre cómo aceptar licencias.

Es importante tener en cuenta que los símbolos del núcleo que se construyen como módulos (M) cargarán sus archivos de firmware asociados desde el sistema de archivos cuando el núcleo los cargue. No es necesario incluir los archivos de firmware del dispositivo dentro de la imagen binaria del núcleo para los símbolos cargados como módulos.

SOF Firmware

Importante
Use of this firmware requires enabling certain Kernel options and is only supported on AMD64 currently. Enabling these options are only necessary if a manual configuration is planned, as the Distribution Kernels have them enabled already. The necessary options are covered in architecture specific kernel configuration.

Sound Open Firmware (SOF) is a new open source audio driver meant to replace the proprietary Smart Sound Technology (SST) audio driver from Intel. 10th gen+ and Apollo Lake (Atom E3900, Celeron N3350, and Pentium N4200) Intel CPUs require this firmware for certain features and certain AMD APUs also have support for this firmware. SOF's supported platforms matrix can be found here for more information.

root #emerge --ask sys-firmware/sof-firmware

Microcódigo

Además del específico para el hardware de gráficos y las interfaces de red, las CPUs también pueden requerir actualizaciones de firmware. Normalmente, este tipo de firmware se conoce como microcódigo. A veces se necesitan revisiones más recientes del microcódigo para parchear la inestabilidad, los problemas de seguridad u otros errores diversos en el hardware de la CPU.

Las actualizaciones de microcódigo para las CPUs de AMD se distribuyen dentro del paquete sys-kernel/linux-firmware mencionado anteriormente. El microcódigo para CPUs Intel se puede encontrar dentro del paquete sys-firmware/intel-microcode, que deberá instalarse por separado. Consulte el artículo sobre microcódigo para obtener más información sobre cómo aplicar actualizaciones de microcódigo.

Configuración y compilación del núcleo

Ahora es el momento de configurar y compilar las fuentes del núcleo. A efectos de instalación, se presentarán tres estrategias para la gestión del núcleo; sin embargo, en cualquier momento posterior a la instalación, se puede cambiar de estrategia.

Clasificadas de menor a mayor complicación:

Estrategia de automatización total: Núcleos de distribución
Un Núcleo de distribución se usa para configurar, compilar e instalar automáticamente el núcleo Linux, sus módulos asociados y (opcionalmente, pero habilitado por defecto) un archivo initramfs. Las actualizaciones futuras del núcleo están completamente automatizadas, ya que se manejan a través del administrador de paquetes, como cualquier otro paquete del sistema. Es posible proporcionar un archivo de configuración del núcleo personalizado si es necesaria la personalización. Este es el proceso menos complicado y es perfecto para los nuevos usuarios de Gentoo debido a que funciona de forma inmediata y ofrece una participación mínima por parte del administrador del sistema.
Estrategia híbrida: Genkernel
Las nuevas fuentes del núcleo se instalan a través del administrador de paquetes del sistema. Los administradores del sistema usan la herramienta genkernel de Gentoo para configurar, compilar e instalar automáticamente el kernel de Linux, sus módulos asociados y (opcionalmente, pero no habilitado por defecto) un archivo initramfs archivo. Es posible proporcionar un archivo de configuración del núcleo personalizado si es necesaria la personalización. La configuración, compilación e instalación futuras del núcleo requieren la participación del administrador del sistema en la forma de ejecutar eselect kernel, genkernel y potencialmente otros comandos para cada actualización.
Estrategia completamente manual
Las nuevas fuentes del núcleo se instalan a través del administrador de paquetes del sistema. El núcleo se configura, construye e instala manualmente usando eselect kernel y una serie de comandos make. Las futuras actualizaciones del núcleo repiten el proceso manual de configuración, creación e instalación de los archivos del núcleo. Este es el proceso más complicado, pero ofrece el máximo control sobre el proceso de actualización del núcleo.

El eje alrededor del cual se construyen todas las distribuciones es el núcleo Linux. Es la capa entre los programas del usuario y el hardware del sistema. Aunque el manual proporciona a sus usuarios varias fuentes posibles del núcleo, hay disponible una lista más completa y con descripciones más detalladas en la página de descripción general del núcleo.

Alternativa: Usar núcleos de distribución

Núcleos de distribución son ebuilds que cubren el proceso completo de desempaquetar, configurar, compilar e instalar el núcleo. La principal ventaja de este método es que los núcleos se actualizan a nuevas versiones como parte de la actualización de @world sin necesidad de una acción manual. Los núcleos de distribución tienen una configuración predeterminada que dan soporte a la mayoría del hardware, pero se pueden personalizar mediante /etc/portage/savedconfig.

Instalando un núcleo de distribución

Before installing the kernel package the dracut USE flag needs to be added for the package sys-kernel/installkernel in /etc/portage/package.use:

ARCHIVO /etc/portage/package.use/installkernelEnable dracut support
sys-kernel/installkernel dracut

Users may also wish to enable additional sys-kernel/installkernel USE flags at this stage. See the Installation/Kernel#Installkernel section for details.

Para construir un núcleo con parches de Gentoo desde el código fuente, escriba:

root #emerge --ask sys-kernel/gentoo-kernel

Los administradores de sistema que quieran evitar compilar las fuentes del núcleo localmente pueden utilizar imágenes del núcleo precompiladas:

root #emerge --ask sys-kernel/gentoo-kernel-bin
Optional: Signed kernel modules

The kernel modules in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) are already signed. To sign the modules of kernels built from source enable the modules-sign USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf:

ARCHIVO /etc/portage/make.confEnable module signing
USE="modules-sign"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.

If MODULES_SIGN_KEY is not specified the kernel build system will generate a key, it will be stored in /usr/src/linux-x.y.z/certs. It is recommended to manually generate a key to ensure that it will be the same for each kernel release. A key may be generated with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
Nota
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
Optional: Signing the kernel image (Secure Boot)

The kernel image in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) is already signed for use with Secure Boot. To sign the kernel image of kernels built from source enable the secureboot USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf. Note that signing the kernel image for use with secureboot requires that the kernel modules are also signed, the same key may be used to sign both the kernel image and the kernel modules:

ARCHIVO /etc/portage/make.confEnable custom signing keys
USE="modules-sign secureboot"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
Nota
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
Nota
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second separate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

See the above section for instructions on generating a new key, the steps may be repeated if a separate key should be used to sign the kernel image.

To successfully boot with Secure Boot enabled, the used bootloader must also be signed and the certificate must be accepted by the UEFI firmware or Shim. This will be explained later in the handbook.

Actualización y limpieza

Una vez que el núcleo está instalado, el administrador de paquetes lo actualizará automáticamente a versiones más nuevas. Las versiones anteriores se conservarán hasta que se solicite al administrador de paquetes que limpie los paquetes obsoletos. Recuerde ejecutar periódicamente:

root #emerge --depclean

para ahorrar espacio. Alternativamente, para limpiar específicamente versiones antiguas del núcleo:

root #emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin

Tareas posteriores a la instalación/actualización

Los núcleos de distribución ahora son capaces de reconstruir los módulos del núcleo instalados por otros paquetes. linux-mod.eclass proporciona USE=dist-kernel que controla una dependencia de subslot en virtual/dist-kernel.

Habilitar esto en paquetes como sys-fs/zfs y sys-fs/zfs-kmod les permite ser reconstruidos automáticamente contra el nuevo núcleo y volver a generar el initramfs si corresponde.

Reconstrucción manual de initramfs

Si es necesario, active manualmente tales reconstrucciones, después de una actualización del núcleo, ejecutando:

root #emerge --ask @module-rebuild

Si se necesita alguno de estos módulos (por ejemplo, ZFS) en el arranque temprano, reconstruya el initramfs después:

root #emerge --config sys-kernel/gentoo-kernel
root #emerge --config sys-kernel/gentoo-kernel-bin

Instalar las fuentes del núcleo

Nota
Esta sección solo es relevante cuando se usa lo siguiente genkernel (híbrido) o configuración manual de la gestión del núcleo.

Al instalar y compilar el núcleo para sistemas basados en amd64, Gentoo recomienda el paquete sys-kernel/gentoo-sources.

Elija una fuente del núcleo adecuada e instálela usando emerge:

root #emerge --ask sys-kernel/gentoo-sources

Esto instalará las fuentes del núcleo Linux en /usr/src/ usando la versión específica del kernel en el nombre de la ruta. No creará un enlace simbólico de forma automática a no ser que la USE=symlink esté habilitada en el paquete de fuentes del núcleo elegido.

Es una convencion que se mantenga el enlace simbólico /usr/src/linux, de modo que se refiera a las fuentes que correspondan con el núcleo que se está ejecutando actualmente. Sin embargo, este enlace simbólico no se creará por defecto. Una manera fácil de crear el enlace simbólico es utilizar el módulo kernel de eselect.

Para obtener más información sobre la finalidad del enlace simbólico y cómo administrarlo, consulte Kernel/Upgrade/es.

Primero, enumere todos los núcleos instalados:

root #eselect kernel list
Available kernel symlink targets:
  [1]   linux-6.1.38-gentoo

Para crear un enlace simbólico llamado linux, use:

root #eselect kernel set 1
root #ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-6.1.38-gentoo

Alternativa: Genkernel

Nota
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

Si una configuración completamente manual parece demasiado desafiante, los administradores del sistema deberían considerar usar genkernel como un enfoque híbrido para el mantenimiento del núcleo.

Genkernel proporciona un archivo de configuración de núcleo genérico, automáticamente genera el kernel (núcleo), initramfs y los módulos asociados, y luego instala los archivos binarios resultantes en las ubicaciones apropiadas . Esto da como resultado una compatibilidad con el hardware mínima y genérica para el primer arranque del sistema y permite un control adicional de actualizaciones y personalización de la configuración del núcleo en el futuro.

Queda avisado: si bien el uso de genkernel para mantener el núcleo brinda a los administradores del sistema un mayor control de actualización sobre el núcleo del sistema, initramfs y otras opciones, "requerirán" un compromiso de tiempo y esfuerzo para materializar las futuras actualizaciones del núcleo a medida que se lanzan nuevas fuentes. Aquellos que busquen un enfoque de no intervención para el mantenimiento del núcleo deberían usar un núcleo de distribución.

Para mayor claridad, es un "concepto erróneo" creer que genkernel genera automáticamente una configuración del núcleo "personalizada" para el hardware en el que se ejecuta; utiliza una configuración del núcleo determinada que admite la mayoría del hardware genérico y maneja automáticamente los comandos make necesarios para ensamblar e instalar el núcleo, los módulos asociados y el archivo initramfs.

Grupo de licencias de software binario redistribuible

Si el paquete de firmware de linux se instaló previamente, salte a la sección de instalación.

Como requisito previo, debido a que el valor USE firwmare está habilitado de forma predeterminada para el paquete sys-kernel/genkernel, el administrador de paquetes también intentará instalar el paquete sys-kernel/linux-firmware. Las licencias de software binario redistribuible deben aceptarse antes de que se instale el linux-firmware.

Este grupo de licencias se puede aceptar de forma global para cualquier paquete agregando @BINARY-REDISTRIBUTABLE como un valor ACCEPT_LICENSE en el archivo /etc/portage/make. conf. Se puede aceptar exclusivamente para el paquete de linux-firmware agregando una inclusión específica a través de un archivo /etc/portage/package.license/linux-firmware.

Si es necesario, revise los métodos para aceptar licencias de software disponibles en el capítulo Instalando el sistema base del manual, luego realice algunos cambios para las licencias de software aceptables.

Si no sabe qué decidir sobre este tema, lo siguiente funcionará:

root #mkdir /etc/portage/package.license
ARCHIVO /etc/portage/package.license/linux-firmwareAceptar licencias de binarios redistribuíbles para el paquete linux-firmware
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE

Instalación

Además de las explicaciones y los requisitos previos, instale el paquete sys-kernel/genkernel:

root #emerge --ask sys-kernel/genkernel

Generación

Compile las fuentes del núcleo ejecutando genkernel all. Sin embargo, tenga en cuenta que genkernel compila un núcleo que admite una amplia gama de hardware para diferentes arquitecturas de computadoras, por lo que esta compilación puede tardar bastante en finalizar.

Nota
Si la partición/volumen raíz usa un sistema de archivos que no sea ext4, puede ser necesario configurar manualmente el núcleo usando genkernel --menuconfig all para agregar soporte integrado en el núcleo para el sistema de archivos en particular (es decir, no construir el soporte al sistema de archivos como un módulo).
Nota
Los usuarios de LVM2 deben añadir --lvm como argumento a la siguiente orden genkernel.
root #genkernel --mountboot --install all

Una vez finalice genkernel, se generarán e instalarán un núcleo y un sistema de archivos de inicio en ram (initramfs) en el directorio /boot. Los módulos asociados se instalarán en el directorio /lib/modules. El initramfs se iniciará inmediatamente después de cargar el núcleo para realizar la detección automática de hardware (al igual que en los entornos de imagen de disco vivo).

root #ls /boot/vmlinu* /boot/initramfs*
root #ls /lib/modules

Alternativa: Configuración manual

Introducción

Nota
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.

La configuración manual de un núcleo a menudo se considera el procedimiento más difícil que un usuario de Linux debe realizar. Nada mas falso - ¡después de configurar un par de núcleos, nadie recuerda que fuera difícil!

Sin embargo, una cosa sí es cierta: es vital conocer el sistema para configurar manualmente un núcleo. La mayor cantidad de información se puede obtener instalando sys-apps/pciutils que contiene la orden lspci:

root #emerge --ask sys-apps/pciutils
Nota
Dentro de la jaula chroot, se pueden ignorar con tranquilidad las advertencias sobre pcilib (como pcilib: cannot open /sys/bus/pci/devices) que pudiera mostrar lspci.

Otra fuente de información sobre nuestro sistema consiste en ejecutar lsmod para ver los módulos del nucleo que ha usado el CD de instalación y tener así buenas indicaciones sobre qué habilitar.

Ahora vaya al directorio de las fuentes del núcleo y ejecute make menuconfig. Esto generará una pantalla de configuración basada en menús.

root #cd /usr/src/linux
root #make menuconfig

La configuración del núcleo Linux tiene muchas, muchas secciones. Veamos primero una lista con algunas opciones que deben ser activadas (en caso contrario Gentoo no funcionará o no funcionará adecuadamente sin ajustes adicionales). También tenemos la Guía de configuración del núcleo Gentoo en la wiki de Gentoo que también podría ayudar.

Habilitar las opciones esenciales

Al usar sys-kernel/gentoo-sources, se recomienda encarecidamente que se habiliten las opciones de configuración específicas de Gentoo. Ésto asegura que estén disponibles un mínimo de características del núcleo requeridas para el funcionamiento adecuado:

KERNEL Habilitando opciones específicas para Gentoo
Gentoo Linux --->
  Generic Driver Options --->
    [*] Gentoo Linux support
    [*]   Linux dynamic and persistent device naming (userspace devfs) support
    [*]   Select options required by Portage features
        Support for init systems, system and service managers  --->
          [*] OpenRC, runit and other script based systems and managers
          [*] systemd

Naturalmente, la elección en las últimas dos líneas depende del sistema de inicio seleccionado (OpenRC vs. systemd). No está de más tener habilitado el soporte para ambos sistemas de inicio.

Al usar sys-kernel/vanilla-sources, las selecciones adicionales para los sistemas de inicio no estarán disponibles. Es posible habilitar el soporte, pero va más allá del alcance del manual.

Habilitar soporte para componentes típicos del sistema

Asegúrese de que todos los controladores que son vitales para el arranque del sistema (como los controladores SATA, la compatibilidad con dispositivos de bloque NVMe, la compatibilidad con sistemas de archivos, etc.) estén compilados dentro del núcleo y no como un módulos; de lo contrario, es posible que el sistema no pueda arranque por completo.

A continuación seleccione con exactitud el tipo de procesador. Se recomienda habilitar las funcionalidades MCE (si están disponibles) de manera que los usuarios puedan ser informados de cualquier problema en este hardware. En algunas arquitecturas (como x86_64) estos errores no son presentados a través de dmesg sino de /dev/mcelog. Para ello se requiere el paquete app-admin/mcelog.

A continuación seleccione Maintain a devtmpfs file system to mount at /dev de modo que los archivos de dispositivo críticos estén disponibles cuanto antes en el proceso de inicio (CONFIG_DEVTMPFS y CONFIG_DEVTMPFS_MOUNT):

KERNEL Habilitar soporte para devtmpfs (CONFIG_DEVTMPFS)
Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

Verificar que se ha activado el soporte de disco SCSI (CONFIG_BLK_DEV_SD):

KERNEL Habilitar soporte para discos SCSI (CONFIG_SCSI, CONFIG_BLK_DEV_SD)
Device Drivers --->
  SCSI device support  ---> 
    <*> SCSI device support
    <*> SCSI disk support
KERNEL Habilitar soporte básico para SATA y PATA (CONFIG_ATA_ACPI, CONFIG_SATA_PMP, CONFIG_SATA_AHCI, CONFIG_ATA_BMDMA, CONFIG_ATA_SFF, CONFIG_ATA_PIIX)
Device Drivers --->
  <*> Serial ATA and Parallel ATA drivers (libata)  --->
    [*] ATA ACPI Support
    [*] SATA Port Multiplier support
    <*> AHCI SATA support (ahci)
    [*] ATA BMDMA support
    [*] ATA SFF support (for legacy IDE and PATA)
    <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)

Verifique que se haya habilitado el soporte básico para NVMe:

KERNEL Habilitar soporte básico NVMe en Linux 4.4.x (CONFIG_BLK_DEV_NVME)
Device Drivers  --->
  <*> NVM Express block device
KERNEL Habilitar soporte básico NVMe en Linux 5.x.x (CONFIG_DEVTMPFS)
Device Drivers --->
  NVME Support --->
    <*> NVM Express block device

No está de más habilitar el siguiente soporte NVMe adicional:

KERNEL Habilitar soporte adicional para NVMe (CONFIG_NVME_MULTIPATH, CONFIG_NVME_MULTIPATH, CONFIG_NVME_HWMON, CONFIG_NVME_FC, CONFIG_NVME_TCP, CONFIG_NVME_TARGET, CONFIG_NVME_TARGET_PASSTHRU, CONFIG_NVME_TARGET_LOOP, CONFIG_NVME_TARGET_FC, CONFIG_NVME_TARGET_FCLOOP, CONFIG_NVME_TARGET_TCP)
[*] NVMe multipath support
[*] NVMe hardware monitoring
<M> NVM Express over Fabrics FC host driver
<M> NVM Express over Fabrics TCP host driver
<M> NVMe Target support
  [*]   NVMe Target Passthrough support
  <M>   NVMe loopback device support
  <M>   NVMe over Fabrics FC target driver
  < >     NVMe over Fabrics FC Transport Loopback Test driver (NEW)
  <M>   NVMe over Fabrics TCP target support

Vaya ahora a File Systems y seleccione el soporte para los sistemas de archivos que se vayan a usar en el sistema. No compile como módulo el sistema de archivos que vaya a utilizar para el sistema de archivos raíz, de lo contrario su sistema Gentoo podría no conseguir montar la partición raíz. También deberá seleccionar Virtual memory y /proc file system. Selecionar una o más de las siguientes opciones según las necesidades del sistema:

KERNEL Habilitar soporte para sistemas de archivo (CONFIG_EXT2_FS, CONFIG_EXT3_FS, CONFIG_EXT4_FS, CONFIG_BTRFS_FS, CONFIG_MSDOS_FS, CONFIG_VFAT_FS, CONFIG_PROC_FS, and CONFIG_TMPFS)
File systems --->
  <*> Second extended fs support
  <*> The Extended 3 (ext3) filesystem
  <*> The Extended 4 (ext4) filesystem
  <*> Btrfs filesystem support
  DOS/FAT/NT Filesystems  --->
    <*> MSDOS fs support
    <*> VFAT (Windows-95) fs support
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Tmpfs virtual memory file system support (former shm fs)

Si está usando PPPoE para conectarse a Internet, o está usando un módem telefónico, habilite las siguientes opciones (CONFIG_PPP, CONFIG_PPP_ASYNC y CONFIG_PPP_SYNC_TTY):

KERNEL Habilitar soporte para PPPoE (PPPoE, CONFIG_PPPOE, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY
Device Drivers --->
  Network device support --->
    <*> PPP (point-to-point protocol) support
    <*> PPP over Ethernet
    <*> PPP support for async serial ports
    <*> PPP support for sync tty ports

Las dos opciones de compresión no están de más aunque no son necesarias, como tampoco lo es la opción PPP sobre Ethernet, que sólo podría utilizarse cuando se configure un núcleo en modo PPPoE.

No olvide incluir el soporte en el núcleo para su tarjeta de red (Ethernet o inalámbrica).

Muchos sistemas también tienen varios núcleos de microprocesador a su disposición, así que es importánte activar Symmetric multi-processing support (CONFIG_SMP):

KERNEL Activar soporte Activating soporte para SMP (CONFIG_SMP)
Processor type and features  --->
  [*] Symmetric multi-processing support
Nota
En sistemas multi-núcleo, cada núcleo cuenta como un procesador.

Si utiliza dispositivos de entrada USB (como un teclado o un ratón) u otros, no olvide activarlos también:

KERNEL Habilitar el soporte para USB y dispositivos de interfaz humana (HID) (CONFIG_USB_EHCI_HCD, CONFIG_USB_OHCI_HCD, CONFIG_USB4)
Device Drivers --->
  HID support  --->
    -*- HID bus support
    <*>   Generic HID driver
    [*]   Battery level reporting for HID devices
      USB HID support  --->
        <*> USB HID transport layer
  [*] USB support  --->
    <*>     xHCI HCD (USB 3.0) support
    <*>     EHCI HCD (USB 2.0) support
    <*>     OHCI HCD (USB 1.1) support
  <*> Unified support for USB4 and Thunderbolt  --->

Optional: Signed kernel modules

To automatically sign the kernel modules enable CONFIG_MODULE_SIG_ALL:

KERNEL Sign kernel modules CONFIG_MODULE_SIG_ALL
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Automatically sign all modules    
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

Optionally change the hash algorithm if desired.

To enforce that all modules are signed with a valid signature, enable CONFIG_MODULE_SIG_FORCE as well:

KERNEL Enforce signed kernel modules CONFIG_MODULE_SIG_FORCE
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->

To use a custom key, specify the location of this key in CONFIG_MODULE_SIG_KEY, if unspecified the kernel build system will generate a key. It is recommended to generate one manually instead. This can be done with:

root #openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem

OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.

Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:

root #ls -l kernel_key.pem
 -r-------- 1 root root 3164 Jan  4 10:38 kernel_key.pem 

If this outputs anything other then the above, correct the permissions with:

root #chown root:root kernel_key.pem
root #chmod 400 kernel_key.pem
KERNEL Specify signing key CONFIG_MODULE_SIG_KEY
-*- Cryptographic API  ---> 
  Certificates for signature checking  --->  
    (/path/to/kernel_key.pem) File name or PKCS#11 URI of module signing key

To also sign external kernel modules installed by other packages via linux-mod-r1.eclass, enable the modules-sign USE flag globally:

ARCHIVO /etc/portage/make.confEnable module signing
USE="modules-sign"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, when using custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate
MODULES_SIGN_HASH="sha512" # Defaults to sha512
Nota
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.

Optional: Signing the kernel image (Secure Boot)

When signing the kernel image (for use on systems with Secure Boot enabled) it is recommended to set the following kernel config options:

KERNEL Lockdown for secureboot
General setup  --->
  Kexec and crash features  --->   
    [*] Enable kexec system call                                                                                          
    [*] Enable kexec file based system call                                                                               
    [*]   Verify kernel signature during kexec_file_load() syscall                                                        
    [*]     Require a valid signature in kexec_file_load() syscall                                                        
    [*]     Enable ""image"" signature verification support
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
[*] Enable loadable module support  
  -*-   Module signature verification    
    [*]     Require modules to be validly signed
    [*]     Automatically sign all modules
    Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
</div>  

<div lang="en" dir="ltr" class="mw-content-ltr">
Security options  ---> 
[*] Integrity subsystem   
  [*] Basic module for enforcing kernel lockdown                                                                       
  [*]   Enable lockdown LSM early in init                                                                       
        Kernel default lockdown mode (Integrity)  --->
</div>            

  <div lang="en" dir="ltr" class="mw-content-ltr">
[*]   Digital signature verification using multiple keyrings                                                            
  [*]     Enable asymmetric keys support                                                                                     
  -*-       Require all keys on the integrity keyrings be signed                                                              
  [*]       Provide keyring for platform/firmware trusted keys                                                                
  [*]       Provide a keyring to which Machine Owner Keys may be added                                                        
  [ ]         Enforce Machine Keyring CA Restrictions

Where ""image"" is a placeholder for the architecture specific image name. These options, from the top to the bottom: enforces that the kernel image in a kexec call must be signed (kexec allows replacing the kernel in-place), enforces that kernel modules are signed, enables lockdown integrity mode (prevents modifying the kernel at runtime), and enables various keychains.

On arches that do not natively support decompressing the kernel (e.g. arm64 and riscv), the kernel must be built with its own decompressor (zboot):

KERNEL zboot CONFIG_EFI_ZBOOT
Device Drivers --->                                                                                                                           
  Firmware Drivers --->                                                                                                                       
    EFI (Extensible Firmware Interface) Support --->                                                                                               
      [*] Enable the generic EFI decompressor

After compilation of the kernel, as explained in the next section, the kernel image must be signed. First install app-crypt/sbsigntools and then sign the kernel image:

root #emerge --ask app-crypt/sbsigntools
root #sbsign /usr/src/linux-x.y.z/path/to/kernel-image --cert /path/to/kernel_key.pem --key /path/to/kernel_key.pem --out /usr/src/linux-x.y.z/path/to/kernel-image
Nota
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second sperate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.

Then proceed with the installation.

To automatically sign EFI executables installed by other packages, enable the secureboot USE flag globally:

ARCHIVO /etc/portage/make.confEnable Secure Boot
USE="modules-sign secureboot"
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
Nota
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
Nota
When generating an Unified Kernel Image with systemd's ukify the kernel image will be signed automatically before inclusion in the unified kernel image and it is not necessary to sign it manually.


Configuración del núcleo específica para la arquitectura

Asegúrese de seleccionar la emulación IA32 si desea ejecutar programas de 32 bits (CONFIG_IA32_EMULATION). Gentoo instala por defecto un sistema multilib (procesado indistinto 32 bits/64 bits) de modo que, a no ser que se use un perfil no-multilib, está opción es necesaria.

KERNEL Seleccionar los tipos y las características del procesador
Processor type and features  --->
   [ ] Machine Check / overheating reporting 
   [ ]   Intel MCE Features
   [ ]   AMD MCE Features
   Processor family (AMD-Opteron/Athlon64)  --->
      ( ) Opteron/Athlon64/Hammer/K8
      ( ) Intel P4 / older Netburst based Xeon
      ( ) Core 2/newer Xeon
      ( ) Intel Atom
      ( ) Generic-x86-64
Binary Emulations  --->
   [*] IA32 Emulation

Habilite el soporte de etiquetado de particiones GPT si se utilizó previamente durante el particionado del disco (CONFIG_PARTITION_ADVANCED and CONFIG_EFI_PARTITION):

KERNEL Habilitar el soporte para GPT
-*- Enable the block layer --->
   Partition Types --->
      [*] Advanced partition selection
      [*] EFI GUID Partition support

Habilitar el soporte EFI stub, variables EFI y el EFI Framebuffer en el núcleo Linux si se va a usar UEFI para arrancar el sistema (CONFIG_EFI, CONFIG_EFI_STUB, CONFIG_EFI_MIXED, CONFIG_EFI_VARS, y CONFIG_EFI_FB):

KERNEL Habilitar soporte para UEFI
Processor type and features  --->
    [*] EFI runtime service support 
    [*]   EFI stub support
    [*]     EFI mixed-mode support
 
Device Drivers
    Firmware Drivers  --->
        EFI (Extensible Firmware Interface) Support  --->
            <*> EFI Variable Support via sysfs
    Graphics support  --->
        Frame buffer Devices  --->
            <*> Support for frame buffer devices  --->
                [*]   EFI-based Framebuffer Support
KERNEL Enabling SOF Firmware support (CONFIG_SND_SOC_SOF_TOPLEVEL, CONFIG_SND_SOC_SOF_PCI, CONFIG_SND_SOC_SOF_ACPI, CONFIG_SND_SOC_SOF_AMD_TOPLEVEL, CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL)
Device Drivers --->
  Sound card support --->
    Advanced Linux Sound Architecture --->
      <M> ALSA for SoC audio support --->
        [*] Sound Open Firmware Support --->
            <M> SOF PCI enumeration support
            <M> SOF ACPI enumeration support
            <M> SOF support for AMD audio DSPs
            [*] SOF support for Intel audio DSPs


Compilar e instalar

Una vez hecha la configuración, es hora de compilar e instalar el núcleo. Salga del configurador e inicie el proceso de compilación:

root #make && make modules_install
Nota
Es posible permitir compilaciones paralelas usando make -jX siendo X un número entero de compilaciones paralelas que se le permiten lanzar al proceso de construcción. Esto es similar a las instrucciones anteriores sobre /etc/portage/make.conf con la variable MAKEOPTS.

Cuando finalice la compilación del núcleo copie su archivo imagen a /boot/. Se hará con la orden make install:

root #make install

Esto copiará la imagen del núcleo en /boot/ junto con el archivo System.map y el archivo de configuración del núcleo.


Kernel installation

Installkernel

Installkernel may be used to automate, the kernel installation, initramfs generation, unified kernel image generation and/or bootloader configuration among other things. sys-kernel/installkernel implements two paths of achieving this: the traditional installkernel originating from Debian and systemd's kernel-install. Which one to choose depends, among other things, on the system's bootloader. By default systemd's kernel-install is used on systemd profiles, while the traditional installkernel is the default for other profiles.

If unsure, follow the 'Traditional layout' subsection below.

systemd-boot

When using systemd-boot (formerly gummiboot) as the bootloader, systemd's kernel-install must be used. Therefore ensure the systemd and the systemd-boot USE flags are enabled on sys-kernel/installkernel, and then install the relevant package for systemd-boot.

On OpenRC systems:

ARCHIVO /etc/portage/package.use/systemd-boot
sys-apps/systemd-utils boot kernel-install
sys-kernel/installkernel systemd systemd-boot
root #emerge --ask sys-apps/systemd-utils

On systemd systems:

ARCHIVO /etc/portage/package.use/systemd
sys-apps/systemd boot
sys-kernel/installkernel systemd-boot
# Needed for <systemd-254
sys-apps/systemd gnuefi
root #emerge --ask sys-apps/systemd

GRUB

Users of GRUB can use either systemd's kernel-install or the traditional Debian installkernel. The systemd USE flag switches between these implementations. To automatically run grub-mkconfig when installing the kernel, enable the grub USE flag.

ARCHIVO /etc/portage/package.use/installkernel
sys-kernel/installkernel grub
root #emerge --ask sys-kernel/installkernel

When systemd's kernel-install is used, it should be configured to use the grub layout, this is the default if the grub USE flag is enabled:

ARCHIVO /etc/kernel/install.conf
layout=grub

Traditional layout, other bootloaders (e.g. lilo, etc.)

The traditional /boot layout (for e.g. LILO, etc.) is used by default if the grub, systemd-boot and uki USE flags are not enabled. No further action is required.


Building an initramfs

In certain cases it is necessary to build an initramfs - an initial ram-based file system. The most common reason is when important file system locations (like /usr/ or /var/) are on separate partitions. With an initramfs, these partitions can be mounted using the tools available inside the initramfs. The default configuration of the Project:Distribution Kernel requires an initramfs.

Without an initramfs, there is a risk that the system will not boot properly as the tools that are responsible for mounting the file systems require information that resides on unmounted file systems. An initramfs will pull in the necessary files into an archive which is used right after the kernel boots, but before the control is handed over to the init tool. Scripts on the initramfs will then make sure that the partitions are properly mounted before the system continues booting.

Importante
If using genkernel, it should be used for both building the kernel and the initramfs. When using genkernel only for generating an initramfs, it is crucial to pass --kernel-config=/path/to/kernel.config to genkernel or the generated initramfs may not work with a manually built kernel. Note that manually built kernels go beyond the scope of support for the handbook. See the kernel configuration article for more information.

Installkernel can automatically generate an initramfs when installing the kernel if the dracut USE flag is enabled:

ARCHIVO /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut

Alternatively, dracut may be called manually to generate an initramfs. Install sys-kernel/dracut first, then have it generate an initramfs:

root #emerge --ask sys-kernel/dracut
root #dracut --kver=6.1.38-gentoo

The initramfs will be stored in /boot/. The resulting file can be found by simply listing the files starting with initramfs:

root #ls /boot/initramfs*

Optional: Building an Unified Kernel Image

An Unified Kernel Image (UKI) combines, among other things, the kernel, the initramfs and the kernel command line into a single executable. Since the kernel command line is embedded into the unified kernel image it should be specified before generating the unified kernel image (see below). Note that any kernel command line arguments supplied by the bootloader or firmware at boot are ignored when booting with secure boot enabled.

An unified kernel image requires a stub loader, currently the only one available is systemd-stub. To enable it:

For systemd systems:

ARCHIVO /etc/portage/package.use/systemd
sys-apps/systemd boot

For OpenRC systems:

ARCHIVO /etc/portage/package.use/systemd-utils
sys-apps/systemd-utils boot

Installkernel can automatically generate an unified kernel image using either dracut or ukify, by enabling the respective flag. The uki USE flag should be enabled as well to install the generated unified kernel image to the $ESP/EFI/Linux directory on the EFI system partition (ESP).

For dracut:

ARCHIVO /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut uki
ARCHIVO /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"

For ukify:

ARCHIVO /etc/portage/package.use/installkernel
sys-kernel/installkernel dracut ukify uki
ARCHIVO /etc/kernel/cmdline
some-kernel-command-line-arguments

Note that while dracut can generate both an initramfs and an unified kernel image, ukify can only generate the latter and therefore the initramfs must be generated separately with dracut.

Generic Unified Kernel Image

The prebuilt sys-kernel/gentoo-kernel-bin can optionally install a prebuilt generic unified kernel image containing a generic initramfs that is able to boot most systemd based systems. It can be installed by enabling the generic-uki USE flag, and configuring installkernel to not generate a custom initramfs or unified kernel image:

ARCHIVO /etc/portage/package.use/generic-uki
sys-kernel/gentoo-kernel-bin generic-uki
sys-kernel/installkernel -dracut -ukify uki

Secure Boot

The generic Unified Kernel Image optionally distributed by sys-kernel/gentoo-kernel-bin is already pre-signed. How to sign a locally generated unified kernel image depends on whether dracut or ukify is used. Note that the location of the key and certificate should be the same as the SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT as specified in /etc/portage/make.conf.

For dracut:

ARCHIVO /etc/dracut.conf
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"
uefi_secureboot_key="/path/to/kernel_key.pem"
uefi_secureboot_cert="/path/to/kernel_key.pem"

For ukify:

ARCHIVO /etc/kernel/uki.conf
[UKI]
SecureBootPrivateKey=/path/to/kernel_key.pem
SecureBootCertificate=/path/to/kernel_key.pem

Rebuilding external kernel modules

External kernel modules installed by other packages via linux-mod-r1.eclass must be rebuilt for each new kernel version. When the distribution kernels are used this may be automated by enabling the dist-kernel flag globally.

ARCHIVO /etc/portage/package.use/module-rebuild
*/* dist-kernel

External kernel modules may also be rebuilt manually with:

root #emerge --ask @module-rebuild

Módulos del núcleo

Listado de módulos del núcleo disponibles

Nota
Es opcional el hacer un listado manual de los módulos que se necesitan para el hardware. udev normalmente cargará todos los módulos para el hardware que se detecte al ser conectado, en la mayoría de los casos. Sin embargo, no es perjudicial que se enumeren los módulos que se cargarán automáticamente. Los módulos no se pueden cargar dos veces; se cargan o se descargan. A veces, el hardware exótico requiere ayuda para cargar sus controladores.

Los módulos que deben cargarse durante cada arranque se pueden agregar a los archivos /etc/modules-load.d/*.conf en el formato de un módulo por línea. En cambio cuando se necesitan opciones adicionales para los módulos, deben indicarse en los archivos /etc/modprobe.d/*.conf.

Para ver todos los módulos disponibles para una versión de núcleo en concreto, lance la siguiente orden find. No olvide sustituir "<versión del núcleo>" con la versión apropiada del núcleo a buscar:

root #find /lib/modules/<versión del núcleo>/ -type f -iname '*.o' -or -iname '*.ko' | less

Forzar la carga de módulos concretos del núcleo

Para forzar la carga del núcleo para que cargue el módulo 3c59x.ko (que es el controlador para una familia de tarjetas de red 3Com específica), edite /etc/modules-load.d/network.conf e ingrese el nombre del módulo dentro de él.

root #mkdir -p /etc/modules-load.d
root #nano -w /etc/modules-load.d/network.conf

Tenga en cuenta que el sufijo del archivo .ko del módulo es insignificante para el mecanismo de carga y no se incluye en el archivo de configuración:

ARCHIVO /etc/modules-load.d/network.confForzar la carga del módulo 3c59x
3c59x

Continúe la instalación con Configurar el sistema.





Información del sistema de ficheros

Etiquetas e Identificadores únicos (UUIDs) del sistema de archivo

Tanto MBR (BIOS) como GPT incluyen soporte para etiquetas del sistema de archivo y para UUIDs del sistema de archivo. Estos atributos pueden estar definidos en /etc/fstab como alternativas a usar por el comando mount cuando intente encontrar y montar los dispositivos de bloques. Las etiquetas del sistema de archivo y los UUIDs son identificados por el prefijo LABEL y UUID y pueden ser visualizados con el comando blkid.

root #blkid
Advertencia
Si se destruye el sistema de ficheros dentro de una partición, entonces los valores de la etiqueta del sistema de ficheros y del UUID también serán alterados o eliminados.

Debido a su unicidad, se recomienda a los lectores que estén usando una tabla de particiones al estilo MBR que utilicen UUIDs en lugar e etiquetas para definir volúmenes que se puedan montar en /etc/fstab.

Importante
Los UUIDs de los sistemas de ficheros en un volumen LVM y sus instantáneas LVM snapshots son idénticos, por lo tanto se debe evitar el uso de UUIDs para montar volúmenes LVM.

Etiquetas de particiones y UUIDs

Los usuarios que han seguido el camino de GPT tienen disponibles algunas opciones más 'robustas' para definir las particiones en /etc/fstab. Etiquetas de particiones y UUIDs de particiones se pueden utilizar para identificar las particiones individuales de los dispositivos de bloque, independientemente del sistema de ficheros que se haya elegido para la partición. Las etiquetas de partición y los UUISs se identifican por los prefijos PARTLABEL y PARTUUID respectivamente y se pueden ver de forma adecuada en el terminal usando la orden blkid:

Output for an amd64 EFI system using the Discoverable Partition Specification UUIDs may like the following:

root #blkid

Aunque no es siempre cierto para etiquetas de partición que usan un UUID para identificar una partición en fstab brinda la garantía de que el gestor de arranque no se confundirá cuando busque un determinado volumen, incluso si el sistema de ficheros cambia en el futuro. Usar los viejos nombres de los dispositivos de bloque (/dev/sd*N) para definir particiones en fstab es peligroso para sistemas que son reiniciados con frecuencia y tienen dispositivos SATA que son agregados y quitados con regularidad.

El nombrado de los dispositivos de bloque depende de una variedad de factores, entre ellos cómo y en qué orden se conectan los discos al sistema. Se podrían incluso mostrar en un orden diferente dependiendo de qué dispositivos detecta el núcleo en primer lugar en los momentos iniciales del proceso de arranque. Dicho esto, a menos que uno juegue constantemente con el orden de los discos, usar los nombres predeterminados de los dispositivos es un método simple y sencillo.

Acerca de fstab

En Linux, todas las particiones utilizadas por el sistema se deben listar en /etc/fstab. Este archivo contiene los puntos de montaje de esas particiones (dónde se encuentran en la estructura del sistema de archivos), cómo se deben montar y con qué opciones especiales (de forma automática o no, si los usuarios pueden montar o no, etc.)

Crear el archivo fstab

El archivo en/etc/fstab utiliza un sintaxis similar a una una tabla. Cada línea consta de seis campos, separados por espacios en blanco (espacios, tabuladores o una mezcla de ambos). Cada campo tiene su propio significado:

  1. El primer campo muestra el dispositivo de bloques o sistema de archivo remoto que debe ser montado. Varios tipos de identificadores de dispositivo están disponibles para nodos de dispositivo de bloques, incluyendo rutas al archivo especial de dispositivo, etiquetas e identificadores únicos (UUIDs) del sistema de archivo y etiquetas e identificadores únicos (UUIDs) de particiones.
  2. El segundo campo muestra el punto de montaje en el que la partición se debe montar.
  3. El tercer campo muestra el sistema de ficheros usado por la partición.
  4. El cuarto campo muestra las opciones de montaje usadas por mount cuando se quiere montar la partición. Como cada sistema de ficheros tiene sus propias opciones de montaje, se recomienda a los administradores de sistemas leer la página del manual de mount (man mount) para un listado completo. Las opciones de montaje múltiples se deben separar por comas.
  5. El quinto campo lo utiliza dump para determinar si la partición debe ser volcada o no. Esto generalmente se puede dejar a 0 (cero).
  6. El sexto campo lo utiliza fsck para determinar el orden en que los sistemas de ficheros se deben revisar en caso de que el sistema no se apagara correctamente. Para el sistema de ficheros raíz se debe definir a 1 mientras que para el resto debería ser 2 (o 0 si no se necesita comprobación del sistema de archivo).
Importante
El archivo predeterminado /etc/fstab proporcionado en los archivos stage de Gentoo no es un archivo fstab válido, sino una plantilla que se puede usar para ingresar valores reales.
root #nano -w /etc/fstab

DOS/Legacy BIOS systems

Echemos un vistazo a como escribir las opciones para la partición /boot/. Esto es solo un ejemplo y se debería modificar conforme a las decisiones realizadas anteriormente sobre el particionamiento en la instalación. En nuestro amd64 ejemplo de particionamiento, /boot/ es normalmente la /dev/sda1 partición, con sistema de ficheros ext4. Se necesita comprobar en el inicio por lo que deberíamos escribir:

ARCHIVO /etc/fstabUna línea ejemplo del /boot para /etc/fstab
# Ajuste cualquier diferencia de formato desde el paso Preparando los discos
/dev/sda1   /boot     xfs    defaults        0 2

Algunos usuarios no quieren que su partición /boot/ se monte de forma automática para mejorar la seguridad de su sistema. Estos usuarios deberían sustituir defaults por noauto. Esto implica que estos usuarios necesitarán montar manualmente esta partición cada vez que quieran utilizarla.

Añadir las reglas que coinciden con el esquema de esquema de particionamiento decido anteriormente y añadir las reglas para dispositivos tales como lector(es) de CD-ROM, y por supuesto, si se utilizan otras particiones o unidades, añadirlos también.

Abajo se muestra un ejemplo más elaborado de un fichero /etc/fstab:

ARCHIVO /etc/fstabUn ejemplo completo de /etc/fstab
# Ajuste cualquier diferencia de formato y particiones adicionales creadas desde el paso Preparar los discos
/dev/sda1
/dev/sda2   none         swap    sw                   0 0
/dev/sda3   /            ext4    noatime              0 1
  
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0

/dev/cdrom /mnt/cdrom auto noauto,user 0 0 }}

UEFI systems

Below is an example of an /etc/fstab file for a system that will boot via UEFI firmware:

ARCHIVO /etc/fstabA full /etc/fstab example for an UEFI system
# Adjust for any formatting differences and/or additional partitions created from the "Preparing the disks" step
/dev/sda1   /efi        vfat    umask=0077     0 2
/dev/sda2   none         swap    sw                   0 0
/dev/sda3   /            xfs    defaults,noatime              0 1
</div>

<div lang="en" dir="ltr" class="mw-content-ltr">
/dev/cdrom  /mnt/cdrom   auto    noauto,user          0 0


DPS UEFI PARTUUID

Below is an example of an /etc/fstab file for a disk formatted with a GPT disklabel and Discoverable Partition Specification (DPS) UUIDs set for UEFI firmware:

ARCHIVO /etc/fstabDPS PARTUUID fstab example
# Adjust any formatting difference and additional partitions created from the "Preparing the disks" step.
# This example shows a GPT disklabel with Discoverable Partition Specification (DSP) UUID set:
PARTUUID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b   /efi        vfat    umask=0077                   0 2
PARTUUID=0657fd6d-a4ab-43c4-84e5-0933c84b4f4f   none        swap    sw                           0 0
PARTUUID=4f68bce3-e8cd-4db1-96e7-fbcaf984b709   /           xfs     defaults,noatime             0 1


Cuando se utiliza auto en el tercer campo, hace que la orden mount averigüe el sistema de ficheros. Esto se recomienda para los medios extraíbles ya que se pueden crear con uno o más de un sistema de ficheros. La opción user en el cuarto campo permite que los usuarios que no sean root puedan montar el CD.

To improve performance, most users would want to add the noatime mount option, which results in a faster system since access times are not registered (those are not needed generally anyway). This is also recommended for systems with solid state drives (SSDs). Users may wish to consider lazytime instead.

Consejo
Debido a la degradación del rendimiento, no se recomienda definir la opción de montaje discard en /etc/fstab. Por lo general, es mejor programar los descartes de bloques periódicamente mediante un programador de tareas como cron o un temporizador (systemd). Consulte Trabajos periódicos de fstrim para obtener más información.

Compruebe el fichero /etc/fstab y salga para continuar.

Información de la red

Es importante tener en cuenta que las siguientes secciones se proporcionan para ayudar al lector a configurar rápidamente su sistema para formar parte de una red de área local.

Para los sistemas que ejecutan OpenRC, una referencia más detallada para la configuración de red está disponible en la sección configuración de red avanzada, que se trata casi al final del manual. Es posible que los sistemas con necesidades de red más específicas deban revisarse primero allí y luego regresar aquí para continuar con el resto de la instalación.

Para una configuración de red systemd más específica, consulte la parte de redes del artículo systemd.

Información sobre equipos y dominios

Una de las elecciones que debe hacer el administrador del sistema es dar nombre a su PC. Esto parece bastante fácil, pero muchos usuarios tienen dificultades para encontrar el nombre apropiado para el host (hostname). Para poder avanzar, sepa que la decisión no es definitiva, se puede cambiar después. En los ejemplos a continuación, el nombre de host tux se usa dentro del dominio homenetwork.

Set the hostname (OpenRC or systemd)

root #echo tux > /etc/hostname

systemd

Para establecer el nombre de host del sistema en systemd, se usa la utilidad hostnamectl.

Para establecer el nombre de host como "tux", se ejecutaría:

root #hostnamectl hostname tux

Vea la ayuda ejecutando hostnamectl --help o man 1 hostnamectl.

Red

Hay muchas opciones disponibles para configurar interfaces de red. Esta sección cubre solo algunos métodos. Elija el que parezca más adecuado según la configuración necesaria.

DHCP mediante dhcpd (con cualquier sistema de inicio)

En la mayoría de redes LAN opera un servidor DHCP. Si es este el caso, entonces se recomienda usar el programa dhcpd para obtener una dirección IP.

Para instalarlo:

root #emerge --ask net-misc/dhcpcd

Para habilitarlo y luego iniciar el servicio en sistemas OpenRC:

root #rc-update add dhcpcd default
root #rc-service dhcpcd start

Para habilitar e iniciar el servicio en sistemas systemd:

root #systemctl enable --now dhcpcd

Con estos pasos completados, la próxima vez que arranque el sistema, dhcpcd debería obtener una dirección IP del servidor DHCP. Consulte el artículo Dhcpcd para obtener más detalles.

netifrc (OpenRC)

Consejo
Esta es una forma particular de configurar la red usando Netifrc en OpenRC. Existen otros métodos para configuraciones más simples como Dhcpcd.
Configurar la red

Durante la instalación de Gentoo Linux, se configuró la red. Sin embargo, eso fue para el entorno vivo de instalación y no para el entorno instalado. Ahora se realiza la configuración de la red para el sistema de Gentoo Linux que se está instalando.

Nota
Se puede obtener información más detallada sobre redes, incluyendo temas más avanzados como bonding, bridging, 802.1 Q VLANs o conexiones de red inalámbrica en la sección de configuración avanzada de la red.

Toda la información de red se recopila en /etc/conf.d/net. Utiliza una sencilla - pero no tan intuitiva - sintaxis. ¡No tema! Todo se explica a continuación. Hay disponible un ejemplo completamente comentado que abarca muchas configuraciones diferentes en /usr/share/doc/netifrc-*/net.example.bz2.

En primer lugar se debe instalar net-misc/netifrc:

root #emerge --ask --noreplace net-misc/netifrc

Por defecto se usa DHCP. Para que funcione, se debe instalar un cliente DHCP. Esto se describe más adelante cuando se describa la instalación de las herramientas del sistema necesarias.

Si la conexión de red se debe configurar con opciones específicas DHCP o porque no se utiliza DHCP en absoluto, entonces abra /etc/conf.d/net:

root #nano -w /etc/conf.d/net

Defina tanto config_eth0 como routes_eth0 para introducir información de la dirección IP y del enrutamiento:

Nota
Esto asume que el interfaz de red se llama eth0. Esto, sin embargo, depende mucho del sistema. Se recomienda asumir que el interfaz se llama igual que cuando se nombra el interfaz arrancando desde los medios de instalación en caso de que éstos sean lo suficientemente recientes. Se puede encontrar más información en la sección Nombrado de las interfaces de red.
ARCHIVO /etc/conf.d/netDefinición de IP estática
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"

Para utilizar DHCP, se debe definir config_eth0:

ARCHIVO /etc/conf.d/netDefinición DHCP
config_eth0="dhcp"

Por favor, lea /usr/share/doc/netifrc-*/net.example.bz2 para obtener una lista de opciones de configuración adicionales. Asegúrese de leer también la página del manual de DHCP si necesita definir determinadas opciones.

Si el sistema tiene varias interfaces de red, entonces repita los pasos anteriores para config_eth1, config_eth2, etc.

Ahora guarde la configuración y salga para continuar.

Inicio automático de red en el arranque

Para que los interfaces de red se activen en el arranque, se necesita añadirlos al nivel de ejecución por defecto (default).

root #cd /etc/init.d
root #ln -s net.lo net.eth0
root #rc-update add net.eth0 default

Si el sistema dispone de varios interfaces de red, entonces se necesita crear los archivos net.* necesarios tal y como se hizo con net.eth0.

Si después de arrancar el sistema se descubre que el nombre de la interfaz de red (que actualmente está documentado como eth0) está equivocado, entonces tendremos que seguir los siguientes pasos para corregirlo:

  1. Actualizar el archivo /etc/conf.d/net indicando el nombre correcto de la interfaz (como enp3s0 o enp5s0 en lugar de eth0).
  2. Crear un nuevo enlace simbólico (como /etc/init.d/net.enp3s0).
  3. Eliminar el enlace simbólico antiguo (rm /etc/init.d/net.eth0).
  4. Añadir el nuevo enlace al nivel de ejecución por defecto (default).
  5. Eliminar el enalce anterior con rc-update del net.eth0 default.

El archivo hosts

A continuación informaremos a Linux sobre el entorno de red. Esto se define en /etc/hosts y ayuda en la resolución de nombres de equipos a direcciones IP para equipos que no se resuelven a través del servidor de nombres.

root #nano -w /etc/hosts
ARCHIVO /etc/hostsRellenar la información de red
# Esto define el presente sistema y debe estar configurado
127.0.0.1     tux.reddecasa tux localhost
  
# Definiciones opcionales de sistemas adicionales en la red
192.168.0.5   juana.reddecasa juana
192.168.0.6   benito.reddecasa benito

Guarde y salga del editor para continuar.

Información del sistema

Contraseña del usuario root

Establezca la contraseña del usuario root con la orden passwd.

root #passwd

La cuenta root de Linux es una cuenta con todos los poderes por lo que deberá elegir una contraseña robusta. Se creará más adelante una cuenta de usuario normal para las operaciones diarias.

Configuración de inicio y arranque

OpenRC

Cuando se usa OpenRC con Gentoo, se utiliza /etc/rc.conf para configurar los servicios, el arranque y parada de un sistema. Abra etc/rc.conf y disfrute de todos los comentarios presentes en el archivo. Revise la configuración y cambie lo que sea necesario.

root #nano -w /etc/rc.conf

A continuación, abra /etc/conf.d/keymaps para gestionar la configuración del teclado. Edítelo para configurar y seleccionar el teclado correcto.

root #nano -w /etc/conf.d/keymaps

Tenga un cuidado especial la variable keymap. Si el mapa de teclado incorrecto está activado, entonces se producirán resultados extraños cuando tecleemos.

Para terminar, edite /etc/conf.d/hwclock para definir las opciones del reloj. Edítelo conforme a las preferencias personales.

root #nano -w /etc/conf.d/hwclock

Si el reloj hardware no está utilizando UTC, entonces es necesario definir clock="local" en el archivo, de lo contrario, el sistema podría mostrar un comportamiento de desfase en el reloj.

systemd

En primer lugar, se recomienda ejecutar systemd-firstboot, que preparará varios componentes del sistema para configurarlos correctamente para el primer arranque en el nuevo entorno de systemd. Al pasar las siguientes opciones, se le pedirá al usuario que establezca una configuración regional, zona horaria, nombre de host, contraseña de root y valores de shell de root. También asignará una ID de máquina aleatoria a la instalación:

root #systemd-firstboot --prompt --setup-machine-id

A continuación los usuarios deben ejecutar systemctl para restablecer todos los archivos de unidad instalados a los valores de política preestablecidos:

root #systemctl preset-all

It's possible to run the full preset changes but this may reset any services which were already configured during the process:

root #systemctl preset-all

Estos dos pasos ayudarán a garantizar una transición fluida desde el entorno live hasta el primer arranque de la instalación.





Bitácora del sistema

OpenRC

Algunas herramientas no están incluidas en el archivo stage3 porque varios paquetes proporcionan la misma funcionalidad. Ahora es el momento de que el usuario decida cual instalar.

La primera herramienta por la que hay que decidirse es la que proporciona el registro y las bitácoras para su sistema. Unix y Linux tienen una excelente historia en sus capacidades de registros. Si fuera necesario, podría registrarse todo lo que pasa en su sistema en bitácoras. Esto sucede con el registro del sistema.

Gentoo ofrece varias utilidades de registro. Algunas de ellas son:

  • app-admin/sysklogd, que es el conjunto tradicional de demonios de bitácoras. La configuración por defecto de las bitácoras funciona sin problemas con solo instalarlo, por lo que ésta es una buena opción para usuarios que están aprendiendo.
  • app-admin/syslog-ng, una bitácora del sistema avanzada. Requiere una configuración adicional para cualquier situación distinta a la de registrarlo todo en un solo fichero de gran tamaño. Los usuarios más avanzados pueden elegir este paquete basándose en su potencial de registro, pero se debe recordar que una configuración adicional es necesaria para escenarios en los que el registro sea de cierta complejidad.
  • app-admin/metalog que es una bitácora del sistema altamente configurable.

También puede haber otros en Portage, el número de paquetes disponibles crece día a día.

Consejo
Si se va a utilizar syslog-ng, se recomienda instalar y configurar a continuación logrotate, ya que no proporciona ningún mecanismo de rotación para los archivos de registro. Sin embargo las versiones más nuevas (>= 2.0) de sysklogd manejan su propia rotación de registros.

Para instalar la bitácora del sistema de su elección, instálela con emerge. En OpenRC agréguela al nivel de arranque predeterminado usando rc-update. El siguiente ejemplo instala app-admin/sysklogd

root #emerge --ask app-admin/sysklogd

En OpenRC:

root #rc-update add sysklogd default

systemd

Consejo
Los usuarios de systemd generalmente pueden omitir este paso a menos que deseen un syslog en particular. systemd incluye journald que tiene la misma funcionalidad.

See man journalctl for more details on using journalctl to query and review the systems logs.

For a number of reasons, such as the case of forwarding logs to a central host, it may be important to include redundant system logging mechanisms on a systemd-based system. This is a irregular occurrence for the handbook's typical audience and considered an advanced use case. It is therefore not covered by the handbook.

Opcional: Demonio Cron

OpenRC

El siguiente es el daemon cron. Aunque es opcional y no se requiere para todos los sistemas, es recomendable instalar uno.

Un daemon cron ejecuta órdenes en horarios planificados. Es muy cómodo si necesita ejecutar órdenes periódicamente (por ejemplo a diario, cada semana o mensualmente).

All cron daemons support high levels of granularity for scheduled tasks, and generally include the ability to send an email or other form of notification if a scheduled task does not complete as expected.

Gentoo ofrece varios deaemons cron, incluyendo sys-process/bcron, sys-process/dcron, sys-process/fcron y sys-process/cronie. La instalación de uno de ellos es similar a la instalación de un registrador del sistema (logger). El siguiente ejemplo usa sys-process/cronie:

  • sys-process/cronie - cronie is based on the original cron and has security and configuration enhancements like the ability to use PAM and SELinux.
  • sys-process/dcron - This lightweight cron daemon aims to be simple and secure, with just enough features to stay useful.
  • sys-process/fcron - A command scheduler with extended capabilities over cron and anacron.
  • sys-process/bcron - A younger cron system designed with secure operations in mind. To do this, the system is divided into several separate programs, each responsible for a separate task, with strictly controlled communications between parts.

cronie

The following example uses sys-process/cronie:

root #emerge --ask sys-process/cronie

En OpenRC:

root #rc-update add cronie default

O en systemd:

root #systemctl enable cronie
root #rc-update add cronie default

Alternative: dcron

root #emerge --ask sys-process/dcron

Si se usa dcron, se requiere una orden de inicialización extra:

root #crontab /etc/crontab

Alternative: fcron

root #emerge --ask sys-process/fcron

Si se usa fcron, se requiere un paso adicional de emerge:

root #emerge --config sys-process/fcron

Alternative: bcron

bcron is a younger cron agent with built-in privilege separation.

root #emerge --ask sys-process/bcron

systemd

Consejo
systemd no requiere un daemon cron ya que tiene temporizadores, pero aún así es posible ejecutar un daemon cron.

Opcional: Indexar Archivos

Para disponer de un índice en su sistema de archivos que proporcionará capacidades para la localización rápida de archivos, instale sys-apps/mlocate.

root #emerge --ask sys-apps/mlocate

Opcional: Acceso remoto

Consejo
opensshd's default configuration does not allow root to login as a remote user. Please create a non-root user and configure it appropriately to allow access post-installation if required, or adjust /etc/ssh/sshd_config to allow root.

Para poder acceder al sistema de forma remota después de la instalación, sshd debe estar configurado para iniciarse en el arranque.

OpenRC

Para añadir el script de inicio sshd al nivel de ejecución por defecto en OpenRC:

root #rc-update add sshd default

Si se necesita acceso a la consola serie (que es posible en el caso de servidores remotos), se debe configurar agetty.

En OpenRC, descomente la sección de la consola serie en /etc/inittab:

root #nano -w /etc/inittab
# SERIAL CONSOLES
s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100

systemd

Y en systemd:

root #systemctl enable sshd

En systemd, ejecute:

root #systemctl enable getty@tty1.service

Optional: Shell completion

Bash

Bash is the default shell for Gentoo systems, and therefore installing completion extensions can aid in efficiency and convenience to managing the system. The app-shells/bash-completion package will install completions available for Gentoo specific commands, as well as many other common commands and utilities:

root #emerge --ask app-shells/bash-completion

Post installation, bash completion for specific commands can managed through eselect. See the Shell completion integrations section of the bash article for more details.

Sincronización temporal

Es importante utilizar algún método de sincronización para el reloj del sistema. Esto generalmente se hace a través del protocolo y el software NTP. Existen otras implementaciones que utilizan el protocolo NTP, como Chrony.

Para usar Chrony, por ejemplo:

root #emerge --ask net-misc/chrony

OpenRC

En OpenRC, ejecute:

root #rc-update add chronyd default

systemd

En systemd, ejecute:

root #systemctl enable chronyd

Los usuarios de systemd podrían querer usar systemd-timesyncd descrito en el artículo systemd.

Herramientas del Sistema de Archivos

Dependiendo de los sistemas de archivos utilizados, es necesario instalar las utilidades del sistema de archivos requeridas (para verificar la integridad del sistema de archivos, crear sistemas de archivos adicionales, etc.). Tenga en cuenta que las herramientas para administrar sistemas de archivos ext4 (sys-fs/e2fsprogs) ya están instaladas como parte del conjunto @system.

La siguiente tabla muestra las herramientas que necesita instalar si se usa un sistema de archivos determinado:

Sistema de ficheros Paquete
Ext 4 sys-fs/e2fsprogs
XFS sys-fs/xfsprogs
ReiserFS sys-fs/reiserfsprogs
JFS sys-fs/jfsutils
VFAT (FAT32, ...) sys-fs/dosfstools
Btrfs sys-fs/btrfs-progs
ZFS sys-fs/zfs

It's recommended that sys-block/io-scheduler-udev-rules is installed for the correct scheduler behavior with e.g. nvme devices:

root #emerge --ask sys-block/io-scheduler-udev-rules
Consejo
Para obtener más información acerca de los sistemas de archivo en Gentoo, echar un vistazo al artículo sobre este tema.

Herramientas de Red

Si la red se configuró previamente en el paso Configurar el sistema y la configuración de la red está completa, entonces esta sección de 'herramientas de red' se puede omitir con seguridad. En ese caso, continúe con la sección sobre Configurar el cargador de arranque.

Instalar un cliente DHCP

Importante
Aunque opcional, la mayoría de usuarios verán que necesitan un cliente DHCP para conectar al servidor DHCP en su red. Por favor, aproveche para instalar un cliente DHCP. Si se olvida este paso, el sistema seguramente no pueda acceder a la red haciendo imposible la descarga posterior de un cliente DHCP.

Para que el sistema obtenga automáticamente una dirección IP para una o mas interfaces de red mediante el uso de guiones netifrc, se necesita instalar un cliente DHCP. Recomendamos usar net-misc/dhcpcd aunque también hay disponibles otros muchos clientes DHCP en el repositorio de Gentoo:

root #emerge --ask net-misc/dhcpcd

Opcional: Instalar un cliente PPPoE

Si se usa PPP para conectarse a internet, instale el paquete net-dialup/ppp:

root #emerge --ask net-dialup/ppp

Opcional: Instalar las herramientas de red inalámbricas

Si se va a conectar el sistema a una red inalámbrica, instale el paquete net-wireless/iw para redes abiertas o WEP networks y el paquete net-wireless/wpa_supplicant para redes WPA o WPA2. iw también es de utilidad para diagnósticos básicos y escaneo de redes inalámbricas.

root #emerge --ask net-wireless/iw net-wireless/wpa_supplicant

Ahora continúe con Configurar el cargador de arranque.





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

For DOS/Legacy BIOS systems:

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.

For UEFI systems:

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

Upon successful installation, the output should match the output of the previous command. If the output does not match exactly, then proceed to Debugging GRUB, otherwise jump to the Configure step.

Optional: Secure Boot

The sys-boot/grub package does not recognize the secureboot USE flag, this is because the GRUB EFI executable is not installed by the package but is instead built and installed by the grub-install command. GRUB must therefore be manually signed after installation to the boot partition. Additionally, GRUB is a modular bootloader but loading modules is prohibited when Secure Boot is enabled. Therefore all necessary modules must be compiled into the GRUB EFI executable, below an example is shown including some basic modules, this may have to be adjusted for more advanced configurations:

root #emerge --noreplace sbsigntools
root #export GRUB_MODULES="all_video boot btrfs cat chain configfile echo efifwsetup efinet ext2 fat font gettext gfxmenu gfxterm gfxterm_background gzio halt help hfsplus iso9660 jpeg keystatus loadenv loopback linux ls lsefi lsefimmap lsefisystab lssal memdisk minicmd normal ntfs part_apple part_msdos part_gpt password_pbkdf2 png probe reboot regexp search search_fs_uuid search_fs_file search_label sleep smbios squash4 test true video xfs zfs zfscrypt zfsinfo"
root #grub-install --target=x86_64-efi --efi-directory=/efi --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
root #sbsign /efi/EFI/GRUB/grubx64.efi --key /path/to/kernel_key.pem --cert /path/to/kernel_key.pem --out /efi/EFI/GRUB/grubx64.efi

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. Below is shown how to setup shim instead:

root #emerge sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /efi/EFI/GRUB/shimx64.efi
root #cp /usr/share/shim/mmx64.efi /efi/EFI/GRUB/mmx64.efi

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Nota
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\GRUB\shimx64.efi' --label 'shim' --unicode
Debugging GRUB

When debugging GRUB, there are a couple of quick fixes that may result in a bootable installation without having to reboot to a new live image environment.

In the event that "EFI variables are not supported on this system" is displayed somewhere in the output, it is likely the live image was not booted in EFI mode and is presently in Legacy BIOS boot mode. The solution is to try the removable GRUB step mentioned below. This will overwrite the executable EFI file located at /EFI/BOOT/BOOTX64.EFI. Upon rebooting in EFI mode, the motherboard firmware may execute this default boot entry and execute GRUB.

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
root #mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars

This is caused by certain non-official Gentoo environments not mounting the special EFI filesystem by default. If the previous command does not run, then reboot using an official Gentoo live image environment in EFI mode.

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-0000012F-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-00000132-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-00000135-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.

System administrators who desire to take a minimalist, although more rigid, approach to booting the system can avoid secondary bootloaders and boot the Linux kernel as an EFI stub.

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.

It is also a good idea to take a look at the efibootmgr article for additional information.

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
Nota
El uso de \ como separador de directorios es obligatorio cuando se utilizan las definiciones UEFI.

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'

Note that the above command presumes an initramfs file was copied into the ESP inside the same directory as the bzImage.efi file.

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

Unified Kernel Image

If installkernel was configured to build and install unified kernel images. The unified kernel image should already be installed to the EFI/Linux directory on the EFI system partition, if this is not the case ensure the directory exists and then run the kernel installation again as described earlier in the handbook.

To add a direct boot entry for the installed unified kernel image:

root #efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader /efi/EFI/Linux/gentoo-x.y.z.efi

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.

Alternative 4: systemd-boot

Another option is systemd-boot, which works on both OpenRC and systemd machines. It is a thin chainloader and works well with secure boot.

To install systemd-boot:

root #bootctl install
Importante
Make sure the EFI system partition has been mounted before running bootctl install.

When using this bootloader, before rebooting, verify that a new bootable entry exists using:

root #bootctl list

If no new entry exists, ensure the sys-kernel/installkernel package has been installed with the systemd-boot USE flag enabled, and re-run the kernel installation.

For the distribution kernels:

root #emerge --ask --config sys-kernel/gentoo-kernel

For a manually configured and compiled kernel:

root #make install
Importante
When installing kernels for systemd-boot, no root= kernel command line argument is added by default. On systemd systems that are using an initramfs users may rely instead on systemd-gpt-auto-generator to automatically find the root partition at boot. Otherwise users should manually specify the location of the root partition by setting root= in /etc/kernel/cmdline as well as any other kernel command line arguments that should be used. And then reinstalling the kernel as described above.

Optional: Secure Boot

When the secureboot USE flag is enabled, the systemd-boot EFI executable will be signed automatically. bootctl install will automatically install the signed version.

To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.

How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. A postinst hook to automatically update systemd-boot and set it up with shim instead is provided on the systemd-boot wiki page. However the first time this should be done manually by following the steps below:

root #emerge --ask sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #cp /usr/share/shim/BOOTX64.EFI /efi/EFI/BOOT/BOOTX64.EFI
root #cp /usr/share/shim/mmx64.efi /efi/EFI/BOOT/mmx64.efi
root #cp /efi/EFI/systemd/systemd-bootx64.efi /efi/EFI/BOOT/grubx64.efi
Nota
Shim is hardcoded to load grubx64.efi. As such the systemd-boot bootloader must be named as if it were GRUB.

Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:

root #openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
Nota
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.

Then the converted certificate can be imported into Shims MOKlist:

root #mokutil --import /path/to/kernel_key.der

And finally we register Shim with the UEFI firmware. In the following command, boot-disk and boot-partition-id must be replaced with the disk and partition identifier of the EFI system partition:

root #efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\BOOT\BOOTX64.EFI' --label 'shim' --unicode



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.





Administración del usuario

Añadir un usuario para uso cotidiano

Trabajar como root en un sistema Unix/Linux es peligroso y debe evitarse tanto como sea posible. Por tanto se recomienda encarecidamente añadir un usuario para el uso cotidiano del sistema.

Los grupos a los que pertenece el usuario definen que actividades puede realizar. La siguiente tabla muestra una lista de los grupos más importantes:

Grupo Descripción
audio Permite acceder a los dispositivos de audio.
cdrom Permite acceder directamente a dispositivos de lectura óptica.
floppy Permite acceder directamente a los dispositivos de disquete.
games Permite utilizar los juegos.
portage Permite utilizar emerge --pretend como usuario normal.
usb Permite acceder a los dispositivos USB.
video Permite acceder al hardware de captura de vídeo y a la aceleración por hardware.
wheel Permite usar su.

Por ejemplo, para crear un usuario llamado larry que pertenezca a los grupos wheel, users y audio, acceda al sistema como root (solo root puede crear usuarios) y ejecute useradd:

Login:root
Password: (Introduzca la contraseña de root)

When setting passwords for standard user accounts, it is good security practice to avoid using the same or a similar password as set for the root user.

Handbook authors recommended to use a password at least 16 characters in length, with a value fully unique from every other user on the system.

root #useradd -m -G users,wheel,audio -s /bin/bash larry
root #passwd larry
Password: (Introduzca una contraseña para larry)
Re-enter password: (Repita la contraseña como comprobación)

Si alguna vez este usuario necesita realizar alguna tarea como root, puede utilizar su - para obtener temporalmente privilegios de root. Otra forma es utilizar el paquete sudo (app-admin/sudo) o la utilidad doas (app-admin/doas) los cuales, correctamente configurados, son muy seguros.

Limpieza de disco

Eliminar archivos comprimidos (tarballs)

Con Gentoo instalado y reiniciado, si todo ha ido bien, se puede eliminar el archivo stage3 comprimido del disco duro. Recuerde que fue descargado en el directorio /.

The files are located in the / directory and can be removed with the following command:

root #rm /stage3-*.tar.*

¿Adónde ir desde aquí?

¿No está seguro de dónde ir desde aquí?. Hay muchos caminos a explorar... Gentoo proporciona a sus usuarios montones de posibilidades, y por lo tanto tiene montones de artículos documentados (y menos también menos documentados) para que sean explorados aquí en el wiki y en otros subdominios relacionados (leer la sección Gentoo en línea abajo).

Documentación adicional

Es importante señalar que, debido a la cantidad de opciones disponibles en Gentoo, la documentación proporcionada por el manual tiene un alcance limitado: se enfoca principalmente en los conceptos básicos para poner en marcha un sistema Gentoo y las actividades básicas de gestión del sistema. El manual excluye intencionalmente instrucciones sobre entornos gráficos, detalles sobre securización y otras tareas administrativas importantes. Dicho esto, hay más secciones del manual para ayudar a los lectores con funciones más básicas.

Definitivamente los lectores deben echar un vistazo a la siguiente parte del manual de Gentoo titulado Trabajar con Gentoo que explica como mantener el software actualizado, instalar paquetes adicionales de software, detalles sobre los ajustes USE, el sistema de inicio OpenRC y algunos otros elementos informativos relacionados con la gestión de un sistema Gentoo después de su instalación.

Además del manual, el lector debería animarse a explorar otros rincones del sitio wiki de Gentoo para encontrar documentación adicional proporcionada por la comunidad. El equipo del wiki de Gentoo también ofrece un resumen de los aspectos de la documentación que ofrece una selección de artículos del wiki por categoría. Por ejemplo, se hace referencia a la guía de localización para hacer el sistema mas parecido a su país (particularmente útil para los usuarios cuyo segundo idioma es el inglés).

La mayoría de los usuarios que usan escritorios configurarán entornos gráficos en los que trabajar de forma nativa. Hay muchos 'meta' artículos mantenidos por la comunidad para entornos de escritorio (DE) y administradores de ventanas (WM). Los lectores deben tener en cuenta que cada DE requerirá pasos de configuración ligeramente diferentes, lo que alargará y agregará complejidad al arranque.

Existen muchos otros Meta-artículos para proporcionar a nuestros lectores una visión general de alto nivel del software disponible dentro de Gentoo.

Gentoo en línea

Importante
Los lectores deben tener en cuenta que todos los sitios oficiales de Gentoo en línea están dirigidos por el código de conducta de Gentoo. Ser un miembro activo de la comunidad Gentoo es un privilegio no un derecho y los usuarios deben tener en cuenta que el código de conducta está ahí por alguna razón.

Con la excepción de la red Intenet Relay Chat (IRC) alojado en Libera.Chat y las listas de correo, la mayoría de los sitios web de Gentoo requieren del uso de una cuenta en cada sitio para realizar preguntas, abrir una discusión o informar de un error.

Foros e IRC

Todos los usuarios son siempre bienvenidos a nuestros Foros de Gentoo o a alguno de nuestros canales de internet relay chat. Es fácil buscar en los foros para comprobar si se ha descubierto algún problema en una instalación nueva de Gentoo en el pasado y si ha sido resuelta después de ofrecer algunos comentarios. La cantidad de usuarios que experimentan problemas cuando instalan Gentoo por primera vez es sorprendente. Se recomienda a los usuarios que busquen en los foros y en el wiki antes de pedir ayuda en los canales de soporte de Gentoo.

Listas de correo

Se dispone de varias listas de correo para los miembros de la comunidad que prefieran pedir ayuda o consejos a través del correo electrónico en lugar de crear una cuenta de usuario en los foros o en IRC. Los usuarios deben seguir las instrucciones para suscribirse a las listas de correo que deseen.

Incidencias

A veces, después de revisar la wiki, buscar en los foros y buscar apoyo en el canal de IRC o en las listas de correo, no se encuentra una solución al problema. Generalmente, esta es una señal para abrir un error en el sitio web Bugzilla de Gentoo.

Guía de desarrollo

Los lectores que deseen aprender más sobre el desarrollo de Gentoo pueden consultar la Guía de desarrollo. Esta guía proporciona instrucciones sobre cómo escribir ebuilds, trabajar con eclasses y proporciona definiciones para muchos conceptos generales detrás del desarrollo de Gentoo.

Pensamientos finales

Gentoo es una distribución robusta, flexible y excelentemente mantenida. A la comunidad de mantenedores le encantaría escucha su opinión acerca de como hacer de Gentoo una distribución incluso mejor.

Como recordatorio, cualquier comentario sobre este manual debe seguir las pautas detalladas en la sección ¿Cómo puedo mejorar el Manual? al principio del manual.

Esperamos que nuestros usuarios elijen implementar Gentoo para cubrir sus necesidades y caso únicos.



Warning: Display title "Manual de Gentoo Linux amd64: Instalar Gentoo" overrides earlier display title "Manual:AMD64/Todo/Instalación".