Manual de Gentoo Linux x86: Instalar Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/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 x86.


CD minimalista LiveDVD
CPU i486 o posterior i686 o posterior
Memoria 256 MB 512 MB
Espacio en disco 2.5 GB (excluyendo espacio de intercambio)
Espacio de intercambio Al menos 256 MB

El proyecto X86 es un buen lugar al que ir para obtener mas información sobre el soporte a x86 de Gentoo.


Medios de instalación de Gentoo Linux

Consejo
While it's recommended to use the official Gentoo boot media when installing, it's possible to use other installation environments. However, there is no guarantee they will contain required components. If an alternate install environment is used, skip to Preparing the disks.

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/x86/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

Los medios de instalación por defecto que utiliza Gentoo Linux son los CDs minimalistas de instalación, que incluyen un entorno arrancable Gentoo muy pequeño. Este entorno incluye todas la herramientas adecuadas para instalar Gentoo. Las imágenes de CD se pueden descargar desde la página de descargas (opción recomendada) o navegando manualmente a la localización del ISO en uno de los muchos servidores réplica disponibles.

Navigating Gentoo mirrors

Si se realiza la descarga desde un servidor réplica, se pueden encontrar los CDs minimalistas de instalación como se indica a continuación:

  1. Ir al directorio releases/
  2. Seleccionar el directorio para la arquitectura adecuada (por ejemplo x86/).
  3. Seleccionar el directorio autobuilds/.
  4. Para las arquitecturas amd64 and x86 seleccionar, 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 Listado ejemplo de ficheros descargables desde releases/x86/autobuilds/current-iso/
[DIR] hardened/                                     05-Dec-2014 01:42    -···
[   ] install-x86-minimal-20141204.iso                 04-Dec-2014 21:04  208M··
[   ] install-x86-minimal-20141204.iso.CONTENTS        04-Dec-2014 21:04  3.0K··
[   ] install-x86-minimal-20141204.iso.DIGESTS         04-Dec-2014 21:04  740···
[TXT] install-x86-minimal-20141204.iso.DIGESTS.asc     05-Dec-2014 01:42  1.6K··
[   ] stage3-x86-20141204.tar.bz2                      04-Dec-2014 21:04  198M··
[   ] stage3-x86-20141204.tar.bz2.CONTENTS             04-Dec-2014 21:04  4.6M··
[   ] stage3-x86-20141204.tar.bz2.DIGESTS              04-Dec-2014 21:04  720···
[TXT] stage3-x86-20141204.tar.bz2.DIGESTS.asc          05-Dec-2014 01:42  1.5K

En el ejemplo de arriba, el fichero install-x86-minimal-20141204.iso es el propio CD minimalista de instalación. Pero como puede observarse, existen otros ficheros relacionados:

  • Un fichero .CONTENTS que es un fichero de texto que lista todos os ficheros disponibles en el medio de instalación. Este fichero puede ser de utilidad para comprobar si el medio de instalación incluye algún firmware o controlador en particular antes de descargarlo.
  • Un fichero .DIGESTS que contiene el resultado hash del propio fichero ISO en varios formatos y algoritmos. Este fichero se puede utilizar para verificar si el fichero ISO que se ha descargado está corrupto o no.
  • Un fichero .DIGESTS.asc que no solo contiene el hash del fichero ISO (como el fichero .DIGESTS) sino también una firma criptográfica de ese fichero. Esto se puede usar para verificar si el el fichero ISO descargado está corrupto o no así como para verificar si el equipo de Ingeniería de Lanzamientos de Gentoo (Gentoo Release Engineering) es el que ofrece el fichero y este no ha sido modificado por terceros.

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 .DIGESTS.asc para el fichero .iso. No necesita descargar el fichero .CONTENTS ya que las instrucciones de instalación no hacen referencia al mismo y el fichero .DIGESTS debería contener la misma información que el fichero .DIGESTS.asc excepto que el último también contiene una firma al comienzo del mismo.

Consejo
The .DIGESTS file is only needed if the signature in the .iso.asc file is not verified.

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.
  1. En primer lugar se valida la firma criptográfica para asegurarse de que el fichero de instalación lo ha generado el equipo de Ingeniería de Lanzamientos de Gentoo (Gentoo Release Engineering).
  2. Si se puede validar correctamente la firma criptográfica, entonces se verifica la suma de comprobación para asegurarse de que el propio fichero descargado no está corrupto.

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 del fichero .DIGESTS.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 las siguientes órdenes para verificar la firma criptográfica del fichero .DIGESTS.asc.

Consejo
When importing Gentoo keys, verify that the fingerprint (BB572E0E2D182910) matches.

En primer lugar descargue el conjunto adecuado de claves disponible en la página de firmas:

user $gpg --keyserver hkps://keys.gentoo.org --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net
gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature
gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model
gpg: depth: 0  valid:   3  signed:  20  trust: 0-, 0q, 0n, 0m, 0f, 3u
gpg: depth: 1  valid:  20  signed:  12  trust: 9-, 0q, 0n, 9m, 2f, 0u
gpg: next trustdb check due at 2018-09-15
gpg: Total number processed: 1
gpg:         new signatures: 1

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

--2019-04-19 20:46:32--  https://gentoo.org/.well-known/openpgpkey/hu/wtktzo4gyuhzu8a4z5fdj3fgmr1u6tob?l=releng
Resolving gentoo.org (gentoo.org)... 89.16.167.134
Connecting to gentoo.org (gentoo.org)|89.16.167.134|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 35444 (35K) [application/octet-stream]
Saving to: 'STDOUT'
 
     0K .......... .......... .......... ....                 100% 11.9M=0.003s
 
2019-04-19 20:46:32 (11.9 MB/s) - written to stdout [35444/35444]
 
gpg: key 9E6438C817072058: 84 signatures not checked due to missing keys
gpg: /tmp/test2/trustdb.gpg: trustdb created
gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported
gpg: key BB572E0E2D182910: 12 signatures not checked due to missing keys
gpg: key BB572E0E2D182910: 1 bad signature
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

Or if using official Gentoo release media, import the key from /usr/share/openpgp-keys/gentoo-release.asc (provided by 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 del fichero .DIGESTS.asc:

user $gpg --verify install-x86-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
It's generally good practice to mark an imported key as trusted, once it's certain the key is trustworthy. When trusted keys are verified, gpg will not say unknown and warn about the signature being untrusted.

Writing the boot media

Desde luego, si solo se descarga el fichero ISO, la instalación de Gentoo Linux no se puede iniciar. Se necesita grabar el fichero ISO en un CD desde el cual inicar el sistema y de una forma que su contenido se graba en el CD, no solo el propio fichero. Debajo se describen algunos métodos comunes. Se pueden encontrar instrucciones más elaboradas en nuestra FAQ acerca de cómo grabar un fichero ISO.

Writing a bootable USB

Most modern systems support booting from a USB device.

Writing with Linux

dd is typically available on most Linux distros, and can be used to write the Gentoo boot media to a USB drive.

Determining the USB device path

Before writing, the path to the desired storage device must be determined.

dmesg will display detailed information describing the storage device as it is added to the system:

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

Alternatively, lsblk can be used to display available storage devices:

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

Once the device name has been determined, this can be added to the path prefix /dev/ to get the device path /dev/sdd.

Consejo
Using the base device path, ie. sdd opposed to sdd1, is recommend as the Gentoo boot media contains a full GPT partition scheme.
Writing with dd
Advertencia
Be sure to check the target (of=target) path before executing dd, as it will be overwritten.

With the device path (/dev/sdd) and boot media install-amd64-minimal-<release timestamp>.iso ready:

root #dd if=install-amd64-minimal-<release timestamp>.iso of=/dev/sdd bs=4096 status=progress && sync
Nota
if= specifies the input file, of= specifies the output file, which in this case, is a device.
Consejo
bs=4096 is used as it speeds up transfers in most cases, status=progress displays transfers stats.

Grabar un disco

See also
A more elaborate set of instructions can be found in 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-x86-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 leer el manual de Gentoo durante la instalación, en primer lugar cree una nueva cuenta de usuario como se describe arriba. A continuación, pulse Alt + F2 para ir a un nuevo terminal.

Durante la instalación, se puede usar la orden 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:X86/es

Para volver al terminal original, pulse Alt + F1.

Consejo
When booted to the Gentoo minimal or Gentoo admin environments, seven TTYs will be available. They can be switched by pressing Alt then a function key between F1-F7. It can be useful to switch to a new terminal when waiting for job to complete, to open documentation, 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 usar sshd, se necesita que la red funcione correctamente. Continuar con el capítulo sobre la Configuración de la red.





Detección automática de la red

¿Es posible que simplemente funcione?

Si su sistema está conectado a una red Ethernet con un servidor DHCP, es muy probable que la configuración de red se haya detectado automáticamente. En ese caso, debería ser capaz de trabajar con las órdenes que hacen uso de la red y que están en el medio de instalación como son: ssh, scp, ping, irssi, wget, y links, entre otras.

Usar DHCP

DHCP (Protocolo de Configuración Dinámica del Sistema) hace posible recibir automáticamente su información de red (dirección IP, máscara de red, dirección de difusión, pasarela, servidores de nombres etc.). Esto solo funciona si dispone de un servidor DHCP en su red (o si su proveedor de servicios de internet (ISP) le ofrece el servicio DHCP). Para conseguir que su interfaz de red reciba esta información automáticamente use dhcpcd:

DHCP requires that a server be running on the same Layer 2 (Ethernet) segment as the client requesting a lease. DHCP is often used on RFC1918 (private) networks, but is also used to acquire public IP information from ISPs.

Consejo
Official Gentoo boot media runs dhcpcd automatically at startup. This behavior can be disabled by adding the nodhcp argument to the boot media kernel commandline.

If it is not already running, dhcpcd can be started on enp1s0 with:

root #dhcpcd eth0

Algunos administradores de red requieren que utilice el nombre de equipo y de dominio que proporciona el servidor DHCP. Si es el caso, utilice:

root #dhcpcd -HD eth0

To stop dhcpcd, -x can be used:

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

Probar la red

A properly configured default route is a critical component of Internet connectivity, route configuration can be checked with:

root #ip route
default via 192.168.0.1 dev enp1s0

If no default route is defined, Internet connectivity is unavailable, and additional configuration is required.

Basic internet connectivity can be confirmed with a ping:

root #ping -c 3 1.1.1.1
Consejo
It's helpful to start by pinging a known IP address instead of a hostname. This can isolate DNS issues from basic Internet connectivity issues.

Outbound HTTPS access and DNS resolution can be confirmed with:

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

Si todo lo anterior funciona, puede saltarse el resto del capítulo e ir al siguiente paso de las instrucciones de instalación (Preparar los discos).

If curl reports an error, but Internet-bound pings work, DNS may need configuration.

If Internet connectivity has not been established, first interface information should be verified, then:

Determinar los nombres de las interfaces

If networking doesn't work out of the box, additional steps must be taken to enable Internet connectivity. Generally, the first step is to enumerate host network interfaces.

Como alternativa a ifconfig, se puede utilizar la orden ip para determinar los nombres de los adaptadores. El siguiente ejemplo muestra la salida de ip addr (de otro sistema, por tanto la información mostrada es diferente a la del ejemplo anterior):

The link argument can be used to display network interface links:

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

The address argument can be used to query device address information:

root #ip addr
2: eno1: <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 eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

The output of this command contains information for each network interface on the system. Entries begin with the device index, followed by the device name: enp1s0.

Consejo
Si no se muestran adaptadores cuando se utiliza la orden estándar ifconfig, se puede intentar utilizar la misma orden con la opción -a. Esta opción fuerza a la utilidad a mostrar todos los adaptadores de red detectados por el sistema aunque se encuentren desactivados. Si no se obtienen resultados con ifconfig -a entonces falta el hardware o no se ha cargado el controlador del adaptador en el núcleo. Ambas situaciones no se tratar en este manual. Pedir ayuda en el canal #gentoo (webchat).

En el resto de este documento, el manual asume que el adaptador de red operativo se llama eth0.

Como consecuencia de la transición hacia los nombres predecibles de las interfaces de red, el nombre de la interfaz en su sistema puede diferir bastante del antiguo nombre convencional eth0. Los medios de instalación actuales pueden mostrar nombres regulares de interfaces de red como eno0, ens1 o enp5s0. Busque la interfaz en la salida de ifconfig que tenga una dirección IP relacionada con su red local.

Optional: Application specific configuration

The following methods are not generally required, but may be helpful in situations where additional configuration is required for Internet connectivity.

Opcional: Configure el Proxy

Si accede a Internet a través de un proxy, podría necesitar configurar la información del proxy durante la instalación. Es muy sencillo definir un proxy: tan solo necesita definir la variable que contiene la información del mismo.

Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.

En la mayoría de los casos, puede definir las variables usando simplemente el nombre del servidor. Por ejemplo, asumimos que el proxy se llama proxy.gentoo.org y el puerto es el 8080.

Nota
The # symbol in the following commands is a comment. It has een added for clarity only and does not need to be typed when entering the commands.

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

root #export http_proxy="http://proxy.gentoo.org:8080"

Si su proxy requiere un nombre de usuario y una contraseña, debería usar la siguiente sintaxis para la variable:

CÓDIGO Añadir un usuario/contraseña a la variable del proxy
http://username:password@proxy.gentoo.org:8080

Start links using the following parameters for proxy support:

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

Para usar un proxy de FTP:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080"

Start links using the following parameter for a FTP proxy:

user $links -ftp-proxy ${ftp_proxy}

Para usar un proxy para RSYNC:

root #export RSYNC_PROXY="proxy.gentoo.org:8080"

Alternativa: utilizar PPP

If PPPoE is required for Internet access, the Gentoo boot media includes the pppoe-setup script to simplify ppp configuration.

During setup, pppoe-setup will ask for:

  • The name of the Ethernet interface connected to the ADSL modem.
  • The PPPoE username and password.
  • DNS server IPs.
  • Whether or not a firewall is needed.
root #pppoe-setup
root #pppoe-start

In the event of failure, credentials in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets should be verified. If credentials are correct, PPPoE Ethernet interface selection should be checked.

Alternativa: Usar PPTP

Si requiere soporte PPTP, puede usar pptpclient que se incluye en los CDs de instalación. Pero primero debe asegurarse de que su configuración es correcta. Edite /etc/ppp/pap-secrets o /etc/ppp/chap-secrets ya que contiene la combinación correcta de usuario/contraseña:

Edit /etc/ppp/pap-secrets or /etc/ppp/chap-secrets so it contains the correct username/password combination:

root #nano -w /etc/ppp/chap-secrets

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

root #nano -w /etc/ppp/options.pptp

Cuando todo esté listo, ejecute pptp (junto con las opciones que no se pudieron poner en options.pptp) para conectar al servidor:

root #pptp <server ipv4 address>

Preparar el acceso inalámbrico

Advertencia
Do not use WEP unless it is the only option. WEP provides essentially no security over an open network.
Nota
El soporte para la orden iw podría ser específico de algunas arquitecturas. Si la orden no está disponible mire si el paquete net-wireless/iw está disponible para la arquitectura en cuestión. La órden iw no estará disponible a menos que el paquete net-wireless/iw haya sido instalado.

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 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 (Entender la terminología de red) o utilizar la herramienta net-setup como hemos descrito anteriormente.

Configuración Automática de Red

In cases where automatic network configuration is unsuccessful, the Gentoo boot media provides scripts to aid in network configuration. net-setup can be used to configure wireless network information and static IPs.

root #net-setup eth0

net-setup le hará algunas preguntas sobre su entorno de red. Cuando lo haya completado, debería disponer de una conexión de red funcionando. Pruebe su conexión de red como se especificó anteriormente. Si los resultados son positivos, ¡felicidades! Sáltese el resto de esta sección y continúe con Preparar los discos.

Importante
Network status should be tested after any configuration steps are taken. In the event that configuration scripts do not work, manual network configuration is required.

Entender la terminología de red

If all of the above fails, the network must be configured manually. This is not particularly difficult, but should be done with consideration. This section serves to clarify terminology and introduce users to basic networking concepts pertaining to manually configuring an Internet connection.

Consejo
Some CPE (Carrier Provided Equipment) combines the functions of a router, access point, modem, DHCP server, and DNS server into one unit. It's important to differentiate the functions of a device from the physical appliance.

Interfaces and addresses

Network interfaces are logical representations of network devices. An interface needs an address to communicate with other devices on the network. While only a single address is required, multiple addresses can be assigned to a single interface. This is especially useful for dual stack (IPv4 + IPv6) configurations.

For consistency, this primer will assume the interface enp1s0 will be using the address 192.168.0.2.

Importante
IP addresses can be set arbitrarily. As a result, it's possible for multiple devices to use the same IP address, resulting in an address conflict. Address conflicts should be avoided by using DHCP or SLAAC.
Consejo
IPv6 typically uses StateLess Address AutoConfiguration (SLAAC) for address configuration. In most cases, manually setting IPv6 addresses is a bad practice. If a specific address suffix is preferred, interface identification tokens can be used.

Networks and CIDR

Once an address is chosen, how does a device know how to talk to other devices?

IP addresses are associated with networks. IP networks are contiguous logical ranges of addresses.

Classless Inter-Domain Routing or CIDR notation is used to distinguish network sizes.

  • The CIDR value, often notated starting with a /, represents the size of the network.
    • The formula 2 ^ (32 - CIDR) can be used to calculate network size.
    • Once network size is calculated, usable node count must be reduced by 2.
      • The first IP in a network is the Network address, and the last is typically the Broadcast address. These addresses are special and cannot be used by normal hosts.
Consejo
The most common CIDR values are /24, and /32, representing 254 nodes and a single node respectively.

A CIDR of /24 is the de-facto default network size. This corresponds to a subnet mask of 255.255.255.0, where the last 8 bits are reserved for IP addresses for nodes on a network.

The notation: 192.168.0.2/24 can be interpreted as:

  • The address 192.168.0.2
  • On the network 192.168.0.0
  • With a size of 254 (2 ^ (32 - 24) - 2)
    • Usable IPs are in the range 192.168.0.1 - 192.168.0.254
  • With a broadcast address of 192.168.0.255
    • In most cases, the last address on a network is used as the broadcast address, but this can be changed.

Using this configuration, a device should be able to communicate with any host on the same network (192.168.0.0).

The Internet

Once a device is on a network, how does it know how to talk to devices on the Internet?

To communicate with devices outside of local networks, routing must be used. A router is simply a network device that forwards traffic for other devices. The term default route or gateway typically refers to whatever device on the current network is used for external network access.

Consejo
It's a standard practice to make the gateway the first or last IP on a network.

If an Internet-connected router is available at 192.168.0.1, it can be used as the default route, granting Internet access.

To summarize:

  • Interfaces must be configured with an address and network information, such as the CIDR value.
  • Local network access is used to access a router on the same network.
  • The default route is configured, so traffic destined for external networks is forwarded to the gateway, providing Internet access.

The Domain Name System

Remembering IPs is hard. The Domain Name System was created to allow mapping between Domain Names and IP addresses.

Linux systems use /etc/resolv.conf to define nameservers to be used for DNS resolution.

Consejo
Many routers can also function as a DNS server, and using a local DNS server can augment privacy and speed up queries through caching.

Many ISPs run a DNS server that is generally advertised to the gateway over DHCP. Using a local DNS server tends to improve query latency, but most public DNS servers will return the same results, so server usage is largely based on preference.

Configuración Manual de la Red

Interface address configuration

Importante
When manually configuring IP addresses, the local network topology must be considered. IP addresses can be set arbitrarily; conflicts may cause network disruption.

To configure enp1s0 with the address 192.168.0.2 and CIDR /24:

root #ip address add 192.168.0.2/24 dev enp1s0
Consejo
The start of this command can be shortened to ip a.

Default route configuration

Configuring address and network information for an interface will configure link routes, allowing communication with that network segment:

root #ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
Consejo
This command can be shortened to ip r.

The default route can be set to 192.168.0.1 with:

root #ip route add default via 192.168.0.1

DNS configuration

Nameserver info is typically acquired using DHCP, but can be set manually by adding nameserver entries to /etc/resolv.conf.

Advertencia
If dhcpcd is running, changes to /etc/resolv.conf will not persist. Status can be checked with ps x | grep dhcpcd.

nano is included in Gentoo boot media and can be used to edit /etc/resolv.conf with:

root #nano -w /etc/resolv.conf

Lines containing the keyword nameserver followed by a DNS server IP address are queried in order of definition:

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

DNS status can be checked by pinging a domain name:

root #ping -c 3 gentoo.org

Once connectivity has been verified, continue with Preparing the disks.





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
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; en su lugar considere usarlos para transferir archivos que es para lo que están diseñados. Alternativamente, podrían ser útiles para copias de seguridad 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 x86 é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 x86 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 x86 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
When using SSD or NVMe drive, it is wise to check for firmware upgrades. Some Intel SSDs in particular (600p and 6000p) require a firmware upgrade for possible data corruption induced by XFS I/O usage patterns. The problem is at the firmware level and not any fault of the XFS filesystem. The smartctl utility can help check the device model and firmware version.

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 Creación de un sistema de archivos en 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 x86. 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. ext4 es el sistema de archivos recomendado para la mayoría de situaciones y plataformas. Abajo se muestra una lista que no es exhaustiva

btrfs
Un sistema de archivos de nueva generación que proporciona muchas 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 kernels anteriores a 5.4.y sean seguros para 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 LTS del núcleo. Los problemas de corrupción del sistema de archivos son comunes en las ramas del núcleo más antiguas, y las versiones anteriores a 4.4.y son especialmente inseguras y propensas a la corrupción. La corrupción es más probable en núcleos más antiguos (que 5.4.y) cuando la compresión está habilitada. RAID 5/6 y los grupos de cuota no son seguros en todas las versiones de btrfs. Además, btrfs puede fallar de forma contraria a las operaciones del sistema de archivos con ENOSPC cuando df informa de espacio libre debido a la fragmentación interna (espacio libre fijado por fragmentos de DATA + SYSTEM, pero necesario en fragmentos de METADATA). Además, una única referencia de 4K a una extensión de 128M dentro de btrfs puede hacer que haya espacio libre, pero no disponible para asignaciones. Esto también puede hacer que btrfs devuelva ENOSPC cuando df informa de espacio libre. Instalar sys-fs/btrfsmaintenance y configurar los scripts para que se ejecuten periódicamente puede ayudar a reducir la posibilidad de problemas de ENOSPC al reequilibrar btrfs, pero no eliminará el riesgo de ENOSPC cuando haya espacio libre. Algunas cargas de trabajo nunca llegarán a ENOSPC, mientras que otras sí. Si el riesgo de ENOSPC en producción es inaceptable, debe usar algo más. Si usa btrfs, asegúrese de evitar configuraciones que se sabe que tienen problemas. Con la excepción de ENOSPC, la información sobre los problemas presentes en btrfs en las últimas ramas del kernel está disponible en la btrfs wiki status page.
ext4
Inicialmente creado como una bifurcación de ext3, ext4 trae nuevas características, mejoras de rendimiento y eliminación de límites de tamaño con cambios moderados en el formato en disco. Puede abarcar volúmenes de hasta 1 EB y con un tamaño de archivo máximo de 16 TB. En lugar de la clásica asignación de bloques de mapa de bits ext2/3, ext4 usa extensiones, que mejoran el rendimiento de archivos grandes y reducen la fragmentación. Ext4 también proporciona algoritmos de asignación de bloques más sofisticados (asignación retrasada y asignación multibloque), lo que brinda al controlador del sistema de archivos más formas de optimizar el diseño de los datos en el disco. Ext4 es el sistema de archivos multiplataforma recomendado para todo uso.
f2fs
El sistema de archivos compatible con la tecnología Flash fue creado originalmente por Samsung para su uso con memoria flash NAND. A partir del segundo trimestre de 2016, este sistema de archivos todavía se considera inmaduro, pero es una opción aceptable al instalar Gentoo en tarjetas microSD, unidades USB u otros dispositivos de almacenamiento basados ​​en flash.
JFS
Sistema de archivos transaccional de alto rendimiento de IBM. JFS es un sistema de archivos basado en un árbol B+ ligero, rápido y fiable con buen rendimiento en diversas condiciones.
XFS
Un sistema de archivos con registro de metadatos que viene con un sólido conjunto de funciones y está optimizado para la escalabilidad. XFS parece ser menos tolerante con varios problemas de hardware, pero se ha actualizado continuamente para incluir funciones modernas.
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 la interoperabilidad/intercambio con otros sistemas operativos (Microsoft Windows o macOS de Apple), pero también es una necesidad para algunos firmware del cargador de arranque del sistema (como UEFI). Los usuarios de sistemas UEFI necesitan una Partición del sistema EFI 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. Al igual que VFAT, no almacena la configuración de permisos de UNIX o los atributos extendidos necesarios para que BSD o Linux funcionen correctamente, por lo tanto, no debe usarse como sistema de archivos en la mayoría de los casos. Debería "sólo" utilizarse para la interoperabilidad/intercambio con los sistemas Microsoft Windows (tenga en cuenta el énfasis en "sólo").

More extensive information on filesystems can be found in the community maintained Filesystem article.

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

Nota
Please make sure to emerge the relevant user space utilities package for the chosen filesystem before rebooting. There will be a reminder to do so near the end of the installation process.

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 Orden de creación ¿En el CD mínimo? Paquete
btrfs mkfs.btrfs sys-fs/btrfs-progs
ext4 mkfs.ext4 sys-fs/e2fsprogs
f2fs mkfs.f2fs sys-fs/f2fs-tools
jfs mkfs.jfs sys-fs/jfsutils
reiserfs mkfs.reiserfs sys-fs/reiserfsprogs
xfs mkfs.xfs sys-fs/xfsprogs
vfat mkfs.vfat sys-fs/dosfstools
NTFS mkfs.ntfs sys-fs/ntfs3g
Importante
The handbook recommends new partitions as part of the installation process, but it is important to note running any mkfs command will erase any data contained within the partition. When necessary, ensure any data that exists within is appropriately backed up before creating a few filesystem.

Por ejemplo, tener la partición del sistema EFI (/dev/sda1) como FAT32 y la partición raíz (/dev/sda3) como ext4 como se usa en la estructura de partición de ejemplo, los siguientes comandos deberían usarse:

root #mkfs.ext4 /dev/sda3

EFI system partition filesystem

The EFI system partition (/dev/sda1) must be formatted as FAT32:

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

Legacy BIOS boot partition filesystem

Systems booting via legacy BIOS with a MBR/DOS disklabel can use any filesystem format supported by the bootloader.

For example, to format with XFS:

root #mkfs.xfs /dev/sda1

Small ext4 partitions

Cuando se usa ext4 en una partición pequeña (menos de 8 GiB), debe crearse el sistema de archivos especificando las opciones adecuadas para reservar suficientes inodos. Esto se puede hacer usando uno de los siguientes comandos, respectivamente:

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

Así se generarán el cuadruple de inodos de manera que los "bytes por inodo" se reducen desde 1 por cada 16kB hasta 1 por cada 4kB.

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

This 'activation' step is only necessary because the swap partition is newly created within the live environment. Once the system has been rebooted, as long as the swap partition is properly defined within fstab or other mount mechanism, swap space will activate automatically.

Montar la partición raíz

Nota
Installations which were previously started, but did not finish the installation process can resume the installation from this point in the handbook. Use this link as the permalink: Resumed installations start here.
Consejo
Los usuarios de un medio de instalación que no sea de

Gentoo, necesitarán crear un punto de montaje, para ello deben lanzar:

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

For EFI installs only, the ESP should be mounted under the root partition location:

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

Continue creating additional mount points necessary for any additional (custom) partition(s) created during previous steps by using the mkdir command.

Ahora que se han inicializado las particiones y albergan sistemas de archivos, es hora de montarlas. Utilice la orden mount sin olvidar crear los puntos de montaje necesarios para cada partición que haya creado. Como ejemplo montamos la partición raíz:

Mount the root partition:

root #mount /dev/sda3 /mnt/gentoo

Continue mounting additional (custom) partitions as necessary using the mount command.

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, el sistema de ficheros proc (una interfaz virtual con el núcleo) se montará así como otros pseudo-sistemas de ficheros. Pero instalaremos los fichero de instalación de Gentoo en primer lugar.





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/x86/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-x86-<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-x86-<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-x86-<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-x86-<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="-O2 -march=i686 -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 directory, therefore mount as follows:

root #mount /dev/sda1

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/x86/ *
  [2]   default/linux/x86//desktop
  [3]   default/linux/x86//desktop/gnome
  [4]   default/linux/x86//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. ). 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 x86, los usuarios pueden elegir usar un perfil diferente para el sistema:

root #eselect profile set 2

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 (x86 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/ requerirá muy pocos paquetes a actualizar, mientras
  • Seleccionar default/linux/amd64//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 x86, 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-5.15.52-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-5.15.52-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.


Para las arquitecturas x86, verificar que la opción 64-bit kernel está no activa/desactivada (CONFIG_64BIT=N), y a continuación seleccione la familia de procesadores apropiados para el o los procesadores del sistema.

Se puede determinar la familia del procesador revisando la salida de las dos órdenes siguientes:

user $cat /proc/cpuinfo | grep -i vendor | uniq
user $cat /proc/cpuinfo | grep -i 'model name' | uniq
KERNEL Desactive el núcleo de 64 bits y seleccione la familia del procesador
[ ] 64-bit kernel
Processor type and features  --->
    Processor family (Core 2/newer Xeon)  --->
        ( ) 486
        ( ) 586/K5/5x86/6x86/6x86MX
        ( ) Pentium-Classic
        ( ) Pentium-MMX
        ( ) Pentium-Pro
        ( ) Pentium-II/Celeron(pre-Coppermine)
        ( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
        ( ) Pentium M
        ( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
        ( ) K6/K6-II/K6-III
        ( ) Athlon/Duron/K7
        ( ) Opteron/Athlon64/Hammer/K8
        ( ) Crusoe
        ( ) Efficeon
        ( ) Winchip-C6
        ( ) Winchip-2/Winchip-2A/Winchip-3
        ( ) AMD Elan
        ( ) GeodeGX1
        ( ) Geode GX/LX
        ( ) CyrixIII/VIA-C3
        ( ) VIA C3-2 (Nehemiah)
        ( ) VIA C7
        (*) Core 2/newer Xeon
        ( ) Intel Atom

Compilar e instalar

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

root #make && make modules_install
Nota
Es posible habilitar las construcciones en paralelo usando make -jX siendo X un número entero que representa el número de tareas en paralelo que el proceso de construcción tiene permitido lanzar. Esto es similar a las instrucciones acerca de /etc/portage/make.conf mencionadas anteriormente, con la variable MAKEOPTS.

Cuando finalice la compilación del núcleo, copie la imagen del núcleo a /boot/. Esto se realiza 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=5.15.52-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 x86 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     ext4    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             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/fstabGPT disklabel DPS 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            sw                           0 0
PARTUUID=44479540-f297-41b2-9af7-d131d5f0458a   /           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.

Opcional: Hacer que funcione PCMCIA

Los usuarios de PCMCIA deben ahora instalar el paquete sys-apps/pcmciautils.

root #emerge --ask sys-apps/pcmciautils

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.





Aunque se instala para una CPU de 32 bits, casi todas las placas base de x86 (desde alrededor de 2006-2007 hasta el presente) que se produjeron con soporte para UEFI tienen 64-bit Firmware UEFI. Algunos usuarios pueden notar "64" en el nombre de los ajustes de configuración y archivos en las siguientes secciones a continuación. Esto es "esperado" en casi todos los casos.

Hay algunas excepciones muy pequeñas a esta regla de firmware UEFI de 64 bits, a saber, algunas de los primeros Apple Mac y algunas tabletas Dell con tecnología Intel Atom [1] eran compatibles con el firmware UEFI de 32 bits. La gran mayoría de lectores nunca encontrarán firmware UEFI de 32 bits en la naturaleza. Por esta razón, el firmware UEFI de 32 bits no se trata en el manual x86.

Selecting a boot loader

With the Linux kernel configured, system tools installed and configuration files edited, it is time to install the last important piece of a Linux installation: the boot loader.

The boot loader is responsible for firing up the Linux kernel upon boot - without it, the system would not know how to proceed when the power button has been pressed.

For x86, we document how to configure either GRUB or LILO for DOS/Legacy BIOS based systems, and GRUB or efibootmgr for UEFI systems.

In this section of the Handbook a delineation has been made between emerging the boot loader's package and installing a boot loader to a system disk. Here the term emerge will be used to ask Portage to make the software package available to the system. The term install will signify the boot loader copying files or physically modifying appropriate sections of the system's disk drive in order to render the boot loader activated and ready to operate on the next power cycle.

Default: GRUB

By default, the majority of Gentoo systems now rely upon GRUB (found in the sys-boot/grub package), which is the direct successor to GRUB Legacy. With no additional configuration, GRUB gladly supports older BIOS ("pc") systems. With a small amount of configuration, necessary before build time, GRUB can support more than a half a dozen additional platforms. For more information, consult the Prerequisites section of the GRUB article.

Emerge

When using an older BIOS system supporting only MBR partition tables, no additional configuration is needed in order to emerge GRUB:

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

A note for UEFI users: running the above command will output the enabled GRUB_PLATFORMS values before emerging. When using UEFI capable systems, users will need to ensure GRUB_PLATFORMS="efi-64" is enabled (as it is the case by default). If that is not the case for the setup, GRUB_PLATFORMS="efi-64" will need to be added to the /etc/portage/make.conf file before emerging GRUB so that the package will be built with EFI functionality:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub

If GRUB was somehow emerged without enabling GRUB_PLATFORMS="efi-64", the line (as shown above) can be added to make.conf and then dependencies for the world package set can be re-calculated by passing the --update --newuse options to emerge:

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

The GRUB software has now been merged onto the system, but it has not yet been installed as a secondary bootloader.

Install

Next, install the necessary GRUB files to the /boot/grub/ directory via the grub-install command. Presuming the first disk (the one where the system boots from) is /dev/sda, one of the following commands will do:

DOS/Legacy BIOS systems

For DOS/Legacy BIOS systems:

root #grub-install /dev/sda

UEFI systems

Importante
Make sure the EFI system partition has been mounted before running grub-install. It is possible for grub-install to install the GRUB EFI file (grubx64.efi) into the wrong directory without providing any indication the wrong directory was used.

For UEFI systems:

root #grub-install --efi-directory=/efi
Installing for x86_64-efi platform.
Installation finished. No error reported.

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 during package installation, but is instead built and installed by the grub-install command via post-package installation. 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.

If grub-install returns an error that says "Could not prepare Boot variable: Read-only file system", and the live environment was correctly booted in UEFI mode, then it should be possible to remount the efivars special mount as read-write and then re-run the aforementioned grub-install command:

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.

Some motherboard manufacturers with poor UEFI implementations seem to only support the /EFI/BOOT directory location for the .EFI file in the EFI System Partition (ESP). The GRUB installer can create the .EFI file in this location automatically by appending the --removable option to the install command. Ensure the ESP has been mounted before running the following command; presuming it is mounted at /efi (as defined earlier), run:

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

This creates the 'default' directory defined by the UEFI specification, and then creates a file with the default name: bootx64.efi.

Configure

Next, generate the GRUB configuration based on the user configuration specified in the /etc/default/grub file and /etc/grub.d scripts. In most cases, no configuration is needed by users as GRUB will automatically detect which kernel to boot (the highest one available in /boot/) and what the root file system is. It is also possible to append kernel parameters in /etc/default/grub using the GRUB_CMDLINE_LINUX variable.

To generate the final GRUB configuration, run the grub-mkconfig command:

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

The output of the command must mention that at least one Linux image is found, as those are needed to boot the system. If an initramfs is used or genkernel was used to build the kernel, the correct initrd image should be detected as well. If this is not the case, go to /boot/ and check the contents using the ls command. If the files are indeed missing, go back to the kernel configuration and installation instructions.

Consejo
The os-prober utility can be used in conjunction with GRUB to detect other operating systems from attached drives. Windows 7, 8.1, 10, and other distributions of Linux are detectable. Those desiring dual boot systems should emerge the sys-boot/os-prober package then re-run the grub-mkconfig command (as seen above). If detection problems are encountered be sure to read the GRUB article in its entirety before asking the Gentoo community for support.

Alternative 1: LILO

Emerge

LILO, the LInuxLOader, is the tried and true workhorse of Linux boot loaders. However, it lacks features when compared to GRUB. LILO is still used because, on some systems, GRUB does not work and LILO does. Of course, it is also used because some people know LILO and want to stick with it. Either way, Gentoo supports both bootloaders.

Installing LILO is a breeze; just use emerge.

root #emerge --ask sys-boot/lilo

Configure

To configure LILO, first create /etc/lilo.conf:

root #nano -w /etc/lilo.conf

In the configuration file, sections are used to refer to the bootable kernel. Make sure that the kernel files (with kernel version) and initramfs files are known, as they need to be referred to in this configuration file.

Nota
If the root filesystem is JFS, add an append="ro" line after each boot item since JFS needs to replay its log before it allows read-write mounting.
ARCHIVO /etc/lilo.confExample LILO configuration
boot=/dev/sda             # Install LILO in the MBR
prompt                    # Give the user the chance to select another section
timeout=50                # Wait 5 (five) seconds before booting the default section
default=gentoo            # When the timeout has passed, boot the "gentoo" section
compact                   # This drastically reduces load time and keeps the map file smaller; may fail on some systems
  
image=/boot/vmlinuz-5.15.52-gentoo
  label=gentoo            # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda3          # Location of the root filesystem
  
image=/boot/vmlinuz-5.15.52-gentoo
  label=gentoo.rescue     # Name we give to this section
  read-only               # Start with a read-only root. Do not alter!
  root=/dev/sda3         # Location of the root filesystem
  append="init=/bin/bb"   # Launch the Gentoo static rescue shell
  
# The next two lines are for dual booting with a Windows system.
# In this example, Windows is hosted on /dev/sda6.
other=/dev/sda6
  label=windows
Nota
If a different partitioning scheme and/or kernel image is used, adjust accordingly.

If an initramfs is necessary, then change the configuration by referring to this initramfs file and telling the initramfs where the root device is located:

ARCHIVO /etc/lilo.confAdding initramfs information to a boot entry
image=/boot/vmlinuz-5.15.52-gentoo
  label=gentoo
  read-only
  append="root=/dev/sda3"
  initrd=/boot/initramfs-genkernel-x86-5.15.52-gentoo

If additional options need to be passed to the kernel, use an append statement. For instance, to add the video statement to enable framebuffer:

ARCHIVO /etc/lilo.confAdding video parameter to the boot options
image=/boot/vmlinuz-5.15.52-gentoo
  label=gentoo
  read-only
  root=/dev/sda3
  append="video=uvesafb:mtrr,ywrap,1024x768-32@85"

Users that used genkernel should know that their kernels use the same boot options as is used for the installation CD. For instance, if SCSI device support needs to be enabled, add doscsi as kernel option.

Now save the file and exit.

Install

To finish up, run the /sbin/lilo executable so LILO can apply the /etc/lilo.conf settings to the system (i.e. install itself on the disk). Keep in mind that /sbin/lilo must be executed each time a new kernel is installed or a change has been made to the lilo.conf file in order for the system to boot if the filename of the kernel has changed.

root #/sbin/lilo

Alternative 2: efibootmgr

Computer systems with UEFI-based firmware technically do not need secondary bootloaders (e.g. GRUB) in order to boot kernels. Secondary bootloaders exist to extend the functionality of UEFI firmware during the boot process. Using GRUB (see the prior section) is typically easier and more robust because it offers a more flexible approach for quickly modifying kernel parameters at boot time.

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.

The sys-boot/efibootmgr application is a tool to used interact with UEFI firmware - the system's primary bootloader. Normally this looks like adding or removing boot entries to the firmware's list of bootable entries. It can also update firmware settings so that the Linux kernels that were previously added as bootable entries can be executed with additional options. These interactions are performed through special data structures called EFI variables (hence the need for kernel support of EFI vars).

Ensure the EFI stub kernel article has been reviewed before continuing. The kernel must have specific options enabled to be directly bootable by the UEFI firmware. It may be necessary to recompile the kernel in order to build-in this support.

It is also a good idea to take a look at the efibootmgr article for additional information.

Nota
To reiterate, efibootmgr is not a requirement to boot an UEFI system; it is merely necessary to add an entry for an EFI-stub kernel into the UEFI firmware. When built appropriately with EFI stub support, the Linux kernel itself can be booted directly. Additional kernel command-line options can be built-in to the Linux kernel (there is a kernel configuration option called CONFIG_CMDLINE. Similarly, support for initramfs can be 'built-in' to the kernel as well. These decisions must be made prior to kernel compilation, resulting in a more static boot configuration.

Install the efibootmgr software:

root #emerge --ask sys-boot/efibootmgr

Create the /efi location, and copy the kernel into this location, calling it bootx64.efi:

root #mkdir -p /efi
root #cp /boot/vmlinuz-* /efi/bootx64.efi
Nota
The use of a backslash (\) as directory path separator is mandatory when using UEFI definitions.

Create boot entry called "gentoo" for the freshly compiled EFI stub kernel within the UEFI firmware:

root #efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader "\bootx64.efi"

If an initial RAM file system (initramfs) is used, then add the proper boot option to it:

root #efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader "\bootx64.efi" --unicode "initrd=\efi\initramfs-genkernel-x86-5.15.52-gentoo"

Note that the above command presumes an initramfs file was copied into the ESP inside the same directory as the bootx64.efi file.

With these changes done, when the system reboots, a boot entry called "gentoo" will be available.

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

Alternative 3: Syslinux

Syslinux is yet another bootloader alternative for the x86 architecture. It supports MBR and, as of version 6.00, it supports EFI boot. PXE (network) boot and lesser-known options are also supported. Although Syslinux is a popular bootloader for many it is unsupported by the Handbook. Readers can find information on emerging and then installing this bootloader in the Syslinux article.

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 x86: Instalar Gentoo" overrides earlier display title "Manual:X86/Todo/Instalación".