Gentoo Logo

Guía Genkernel de Gentoo Linux

Contenido:

1.  Introducción

Fundamentos

Para aquellos usuarios que no desean compilar manualmente sus núcleos, genkernel les permite automatizar este proceso. Puede ayudar a crear una imagen del núcleo similar a las disponibles en el CD de Instalación de Gentoo, las cuales han sido diseñadas para detectar automáticamente la configuración del hardware de su sistema. Algunos usuarios pueden estar también interesados en utilizar genkernel para hardware que precisa de un núcleo operativo e inicialización antes de que arranque el sistema.

Público objetivo

Genkernel a menudo es una buena elección para aquellos que no están acostumbrados a compilar su propio núcleo o para los que no están seguros de su configuración de hardware. Genkernel está diseñado para aliviar el proceso de compilación del núcleo y debería dar soporte por defecto a la mayoría de su hardware.

Sin embargo, si conoce los drivers que requiere su sistema, puede reducir aún más el tiempo de compilación del núcleo. Esto es posible debido a que puede indicarle a genkernel que solo construya los drivers relevantes a su hardware. Con frecuencia el número de drivers que requiere su sistema será menor (implicando un tiempo de compilación más corto) que los que ofrece la configuración por defecto.

Instalar genkernel

Puede obtener genkernel ejecutando simplemente la orden emerge genkernel. Consulte genkernel --help para obtener ayuda sobre cómo usar la versión de genkernel instalada en su sistema.

2.  Trabajar con genkernel

Cómo usar genkernel

Aunque hay varias formas de ejecutar genkernel, el enfoque menos intrusivo es mediante genkernel all. Con este se usa una configuración genérica que funciona bien en la mayoría de los sistemas. Tal como se mencionaba antes, este enfoque presenta ciertas desventajas pues la mayor parte de los módulos creados no son útiles para el usuario promedio y puede incrementar el tiempo de compilación. Abajo se muestra un ejemplo de un enfoque más eficiente el cual se logra al pasar ciertos parámetros a genkernel como el usuario root:

Listado de Código 2.1: Ejecutar genkernel (con parámetros)

# genkernel --splash --no-install --no-clean --menuconfig all

La línea descrita arriba provoca que genkernel construya un núcleo con la pantalla de presentación de arranque activada (--splash) el cual tendrá que ser instalado manualmente (--no-install). Mientras se esté preparando el árbol de fuentes del núcleo, genkernel se abstendrá de eliminar cualquiera de los archivos objeto preexistentes en el árbol de las fuentes (--no-clean). Se desplegará al usuario una herramienta de configuración basada en menús para seleccionar qué módulos se construirán en el sistema (--menuconfig).

Existen otros parámetros que alteran el resultado de genkernel. Por ejemplo, reemplazar --no-install con el parámetro --install permite a genkernel instalar automáticamente el nuevo núcleo en el directorio /boot, y creará enlaces simbólicos si se especifica el parámetro --symlink. El uso del parámetro --mountboot permite que genkernel monte su partición /boot automáticamente si es necesario.

Recuerde, genkernel está diseñado para que la compilación del núcleo sea fácil y sin mayores inconvenientes. Por esta razón, genkernel ofrece diversos parámetros para minimizar el esfuerzo que implica la compilación del núcleo. Por ejemplo, hay algunos parámetros que ayudan con la configuración del núcleo, mientras que hay otros que afectan la compilación actual. Algunos por su parte incluso pueden servir de ayuda en la depuración del proceso de compilación. Aquellos que estén interesados en optimizaciones adicionales tengan en cuenta que existen parámetros que afectan el ensamblado del núcleo, el empaquetamiento e incluso la inicialización del núcleo.

El resto de este capítulo examina la funcionalidad de varios parámetros, variables de configuración y acciones disponibles de genkernel. Para una lista completa, por favor, lea man genkernel y los comentarios en /etc/genkernel.conf. Algunos parámetros tienen variantes que realizan al operación contraria. Estas variantes comienzan con el prefijo no-, y sus efectos se indican entre corchetes, [].

Parámetros de Configuración

Los parámetros de configuración listados abajo le ayudan a decidir qué características deberían estar activadas o no en el núcleo previo a su compilación. Incluso puede elegir si el archivo de configuración creado en el proceso debería ser o no guardado. Los siguientes son los parámetros principales de configuración:

  • --no-menuconfig: Activa [o desactiva] la orden make menuconfig (que invoca a la utilidad de configuración interactiva del núcleo basada en menús de pantalla) antes de compilar el núcleo.
  • --gconfig: Ofrece la utilidad de configuración del núcleo que depende de las bibliotecas GTK+-. La ventaja de esta opción es que la mayoría de los usuarios encuentran que usar esta herramienta hace más fácil y clara la configuración del núcleo ya que se basa en el sistema X-Window. Su desventaja es que necesita el sistema X-Window para usarla, así que no funcionará en la línea de comandos.
  • --xconfig: Ofrece la utilidad de configuración del núcleo que depende de las bibliotecas QT. La ventaja de esta opción es que la mayoría de los usuarios encuentran que usar esta herramienta hace más fácil y clara la configuración del núcleo ya que se base en el sistema X-Window. Su desventaja es que necesita el sistema X-Window para usarla, así que no funcionará en la línea de comandos.
  • --no-save-config: Guarda [o no] el archivo de configuración del núcleo a un archivo en el directorio /etc/kernels/ para uso posterior.

Parámetros de Compilación

Los siguientes parámetros normalmente hacen efecto durante la compilación actual:

  • --kerneldir=/ruta/a/las/fuentes/: Especifica una ubicación alternativa a las fuentes del núcleo en vez de la ubicación por defecto /usr/src/linux/.
  • --kernel-config=/ruta/al/archivo/de/configuración: Especifica qué archivo alternativo de configuración del núcleo será usado en vez del archivo por defecto /ruta/a/las/fuentes/.config.
  • --module-prefix=/ruta/al/directorio/de/prefijo: Especifica un prefijo al directorio donde serán instalados los módulos del núcleo (la ruta por defecto es el directorio /lib/modules/).
  • --no-clean: Activa [o desactiva] la orden make clean antes de compilar su núcleo. La orden make clean elimina todos los archivos objeto y dependencias del árbol de fuentes del núcleo.
  • --no-mrproper: Activa [o desactiva] la orden make mrproper antes de compilar su núcleo. Al igual que la orden make clean, make mrproper elimina todos los archivos objeto y dependencias del árbol de fuentes del núcleo. Sin embargo, los archivos de configuración anteriores (en /ruta/a/las/fuentes/.config o /ruta/a/las/fuentes/config.old) también se eliminarán del árbol de fuentes del núcleo.
  • --oldconfig: Ejecuta la orden make oldconfig, el cual intenta reunir información de configuración de la arquitectura del sistema a partir del guión genérico ubicado en /usr/share/genkernel/. Este es un proceso no-interactivo; no se requiere el usuario dé información. También, si se usa --oldconfig junto con --clean, este último parámetro es negado lo que resulta en la activación del parámetro --no-clean.
  • --callback="echo Hola": Realiza una llamada a los argumentos especificados (echo Hola, en este caso) después de que se hayan compilado el núcleo y los módulos relevantes, pero antes de compilar la imagen de initrd. Esto puede ser útil si quiere instalar módulos externos en la imagen initrd invocándolos a través de la llamada "callback" y redefiniendo el grupo de módulos de genkernel.
  • --no-install: Activa [o desactiva] la orden make install, que instala su nueva imagen del núcleo, el archivo de configuración, la imagen initrd y el mapa de símbolos del sistema en su partición boot ya montada. Así mismo se instalarán los módulos compilados.
  • --no-ramdisk-modules: Esta opción no copia ningún módulo al initrd creado por genkernel. Este parámetro es una excepción a la regla del prefijo no-; al omitir este prefijo crea un parámetro inválido de genkernel.
  • --all-ramdisk-modules: Copia todos los módulos disponibles a la imagen initrd creada por genkernel.
  • --genzimage: Crea la imagen initrd previo a la imagen del núcleo. (Este hack actualmente solo es válido en los sistemas Pegasos PPC).

Parámetros del Compilador

Genkernel soporta los siguientes parámetros que se pueden pasar a aplicaciones relevantes mientras se ensambla el núcleo. Dichos parámetros hacen efecto sobre el compilador usado para el proceso de compilación del núcleo aunque a un nivel mucho más bajo.

  • --kernel-cc=algúnCompilador: Especifica qué compilador utilizar para compilar el núcleo.
  • --kernel-ld=algúnEnlazador: Define el enlazador que debe ser utilizado durante el proceso de compilación de su núcleo.
  • --kernel-as=algúnEnsamblador: Especifica qué ensamblador utilizar para ensamblar el núcleo.
  • --kernel-make=algúnMake: Define una alternativa para GNU Make a utilizar durante la compilación del núcleo.
  • --utils-cc=algúnCompilador: Especifica que compilador utilizar para compilar las utilidades auxiliares.
  • --utils-ld=algúnEnlazador: Define el enlazador que debe ser utilizado durante el proceso de compilación de las utilidades auxiliares.
  • --utils-as=algúnEnsamblador: Especifica qué ensamblador utilizar para ensamblar las utilidades auxiliares.
  • --utils-make=algúnMake: Define una alternativa para GNU Make a usar durante la compilación de las utilidades auxiliares.
  • --makeopts=-jX: Define el número de hilos concurrentes que puede implementar la utilidad make mientras se compila el núcleo (y sus utilidades). La variable 'X' es un número que se obtiene al sumar uno (1) al número de procesadores usados por el sistema. Así, para un sistema que tenga una CPU, el parámetro apropiado es -j2; un sistema con 2 procesadores usará el parámetro -j3 y así sucesivamente. (Un sistema con un solo procesador que soporte la tecnología Hyper-Threading™ (HT) puede usar el parámetro -j3 toda vez que se haya activado el soporte de Procesamiento Múltiple Simétrico (SMP) en el núcleo).

Parámetros de Depuración

El uso de parámetros de depuración durante el proceso de compilación del núcleo controla la cantidad de información que se reporta, así como la presentación de dicha información.

  • --loglevel=niveldeverbosidad: Controla el nivel de verbosidad de la información que entrega genkernel. La variable NivelDeVerbosidad es un entero cuyo valor está entre 0 y 5. El nivel '0' representa la mínima cantidad de información de salida mientras que '5' entrega tanta información como es posible acerca de las actividades de genkernel durante el proceso de compilación del núcleo.
  • --logfile=/ruta/al/archivo/de/salida: Ignora el valor ajustado por el parámetro --loglevel y envía todos los datos de depuración generados por genkernel al archivo de salida especificado, el cual se ubica por defecto en /var/log/genkernel.log.
  • --no-color: Activa [o desactiva] la salida en colores de la información de depuración (generada por genkernel) usando secuencias de escape.

Parámetros de Inicialización

Los parámetros indicados aquí se utilizan para crear ciertos efectos durante el inicio del sistema. Algunos de estos parámetros son útiles únicamente para efectos de estética mientras que otros pueden ser esenciales para la activación de algunas características en el sistema.

  • --no-splash: Activa [o desactiva] el soporte para el framebuffer splash en el initrd que genkernel va a construir. Para anular el tema por defecto usado por gensplash use el parámetro --splash=TemaPreferido (donde TemaPreferido es el título de uno de los directorios ubicados dentro del directorio /etc/splash/.
  • --splash-res=ResoluciónPreferida: Este parámetro le permite seleccionar las resoluciones de pantalla de arranque soportadas en el initrd durante el inicio del sistema. Esto es útil por dos motivos: Primero, que puede seleccionar las resoluciones de pantalla de arranque que solo son relevantes a su sistema. Segundo, evita hacer uso de mayor espacio en disco requerido por initrd (puesto que initrd no ofrece soporte para aquellas resoluciones irrelevantes a la configuración de su sistema). No obstante, puede que desee omitir este parámetro si el núcleo está siendo compilado para un CD de Instalación; esto permite soporte de splash para todas las resoluciones posibles.
  • --do-keymap-auto: Fuerza la selección del mapa de teclado durante la secuencia de arranque.
  • --lvm: Incluye soporte de almacenamiento vía Administración Lógica de Volúmenes (LVM2) a partir de binarios estáticos, si están disponibles en el sistema. Los binarios (estáticos) de LVM2 se compilan en caso de no estar presentes. Asegúrese de instalar el paquete lvm2 en su sistema con emerge lvm2 antes de activar este parámetro y revise la Guía de Instalación de LVM2 en Gentoo.
  • --dmraid: Incluye suporte para DMRAID; la utilidad que crea mapeos RAID usando el subsistema de mapeo de dispositivos del núcleo. DMRAID descubre, activa, desactiva y muestra las propiedades de conjuntos de software RAID (por ejemplo, ATARAID) y particiones DOS contenidas.
  • --luks: Incluye soporte para el Sistema de Clave Unificada de Linux (en inglés, Linux Unified Key Setup o LUKS. Esto permitirá usar un dispositivo cifrado con LUKS que contenga el sistema raíz de archivos. En el gestor de arranque se coloca el dispositivo cifrado como el valor de crypt_root (y real_root será el dispositivo descifrado que creará LUKS).
  • --disklabel: Añade soporte para etiquetado de discos y UUID a su initrd.
  • --iscsi: Añade soporte para iSCSI a su initrd.
  • --multipath: Añade soporte para Multipath a su initrd.
  • --linuxrc=/ruta/a/su/linuxrc: Especifica la ruta al archivo creado por el usuario y denominado linuxrc — un guión inicializado durante la etapa de inicio del núcleo previo al proceso de arranque. (La ubicación por defecto del guión linuxrc debería ser el directorio /usr/share/genkernel/) Este guión le permite iniciar el arranque de un pequeño y modular núcleo y cargar los drivers necesarios (como módulos) por el sistema.
  • --cachedir=/ruta/a/un/directorio/alternativo/: Anula la ubicación por defecto del caché usado mientras se compila el núcleo.
  • --tempdir=/ruta/al/nuevo/directorio/temporal: Especifica la ubicación del directorio temporal usado por genkernel mientras compila el núcleo.
  • --unionfs: Incluye soporte del Sistema de Unificación de Archivos en la imagen del initrd.

Parámetros misceláneos

Genkernel también soporta una serie de parámetros que no pueden clasificarse en las categorías descritas anteriormente:

  • --mountboot: Detecta si el directorio /boot/ necesita o no ser montado en una partición separada. Revisará el archivo /etc/fstab para ver cómo montar la partición boot en un sistema de archivos (si es necesario).
  • --kernname=Sobrenombre: Le permite modificar el nombre del núcleo y las imágenes initrd en el directorio /boot/, de manera que las imágenes producidas por el núcleo sean kernel-Sobrenombre-version e initramfs-Sobrenombre-version.

Acciones posibles

Una acción le dice a genkernel qué construir. Actualmente, se reconocen las siguientes acciones:

  • all: Construye todas las etapas — initrd, imagen del núcleo y módulos
  • bzImage: Construye solamente la imagen del núcleo
  • kernel: Construye solamente la imagen del núcleo y los módulos
  • initramfs: Construye solamente la imagen initramfs/ramdisk
  • ramdisk: Construye solamente la imagen initramfs/ramdisk

La primera acción, all, es la que se recomienda para la mayoría de los usuarios pues construye las etapas requeridas para tener un núcleo funcional. Recuerde, una acción simplemente le dice a genkernel qué construir y no qué instalar.

Configuración del Gestor de Arranque

Para configurar genkernel de modo que funcione con su gestor de arranque, se deberían hacer tres o cuatros cambios al archivo de configuración del gestor:

  1. Añada por ejemplo real_root=/dev/sda3, a los parámetros de núcleo que pasamos a la imagen en caso que /dev/sda3 sea su partición de raíz.
  2. Si está utilizando la pantalla de presentación de arranque (splash), añada un parámetro correcto para el modo de pantalla, por ejemplo vga=0x317, así como splash=verbose o splash=silent según el nivel de detalle que desee.
  3. Añada initrd a la configuración de su gestor de arranque; véase El Manual de Gentoo para aprender como hacerlo con el tipo de gestor de arranque que posee.

3.  Opciones de configuración

Editar /etc/genkernel.conf

Pasar parámetros a genkernel desde la línea de comandos puede ser engorroso, especialmente si tiene cerca de una docena de parámetros:

Listado de Código 3.1: Ejecutar genkernel (sobrecargado con parámetros)

# genkernel --loglevel=5 --no-color --no-mrproper --clean --splash \
--kerneldir=/ruta/alternativa/a/las/fuentes/del/núcleo --install --menuconfig \
--kernel-config=/ruta/al/archivo/de/configuración --save-config --mountboot all

Afortunadamente existe un archivo de configuración donde se puede ajustar (o cambiar) la mayoría de las opciones básicas en la medida que sea necesario: /etc/genkernel.conf. A continuación es se muestra un resumen de las opciones más relevantes:

  • MENUCONFIG=[yes|no]: Esta opción es equivalente al parámetro --menuconfig usado por genkernel, que a su vez utiliza al orden make menuconfig para invocar la utilidad de configuración del núcleo basada en línea de comandos. Para invocar la utilidad automáticamente durante la configuración del núcleo mediante este guión, ajuste aquí la opción 'yes', de lo contrario elija 'no'.
  • CLEAN=[yes|no]: Al ajustar esta opción a 'yes' equivale al parámetro --clean usado por genkernel e invoca la orden make clean para eliminar todos los archivos objeto y dependencias del árbol de fuentes del núcleo. Por el contrario, al ajustar esta opción a 'no' crea un efecto de cascada — que es equivalente al parámetro --no-clean de genkernel y que inhabilita la orden make clean e implica el parámetro --no-mrproper de genkernel — lo que esencialmente anula la orden make mrproper.
  • MRPROPER=[yes|no]: Ajustar esta opción a 'yes' equivale al parámetro --mrproper usado por genkernel e invoca la orden make mrproper, la cual elimina por completo los archivos de configuración presentes en el árbol de fuentes del núcleo. Seleccionar 'no' es equivalente al parámetro --no-mrproper, que desactiva la orden make mrproper.
  • MOUNTBOOT=[yes|no]: Ajustar esta opción a 'yes' equivale al parámetro --mountboot y monta automáticamente el directorio /boot/ (de ser necesario) en tiempo de compilación. Si el directorio /boot/ está en una partición separada considere activar esta opción puesto que es esencial más tarde y no tendrá que recordarlo en ese momento.
  • SAVE_CONFIG=[yes|no]: Después de configurar el núcleo, las opciones seleccionadas se almacenan en .config en el árbol de fuentes del núcleo. Este guión puede ser sobreescrito durante la próxima compilación del núcleo o incluso eliminado del árbol de fuentes del núcleo. Eligiendo 'yes' equivale al parámetro --save-config y guarda todas las opciones seleccionadas durante la configuración del núcleo en un guión en el directorio /etc/kernels/. Si elige 'no' mantiene el statu quo.
  • USECOLOR=[yes|no]: Ajustar esta opción a 'yes' es equivalente al parámetro --color que muestra la salida de genkernel en colores para facilitar la depuración (cuando es necesario).
  • LOGLEVEL=[0|1|2|3|4|5]: Esta opción es para ajustar el nivel de verbosidad de la salida que genera genkernel — Si ajusta esta opción a '0' con --loglevel=0 hará que se suprima toda la salida generada por genkernel; mientras que ajustándola a '5' con --loglevel=5 tendrá el efecto contrario, es decir, mostrará al usuario toda la salida generada por genkernel.

Nota: En /etc/genkernel.conf se describen más opciones.

Al elegir las opciones apropiadas en /etc/genkernel.conf, puede reducir hasta la mitad del número de parámetros pasados a genkernel en la línea de comandos.

Listado de Código 3.2: Ejecutar genkernel (con parámetros) luego de usar genkernel.conf

# genkernel --splash --kerneldir=/ruta/alternativa/a/las/fuentes/del/núcleo \
--kernel-config=/ruta/al/archivo/de/configuración --install all

Los resultados obtenidos por ambos métodos son idénticos pero el último tiene la mayor parte de las opciones almacenadas en un guión que puede ser modificado después.

4.  Arranque por Red con genkernel

Arranque por Red a partir de un CD de Instalación

La utilidad genkernel puede construir el núcleo y las imágenes initrd que dan soporte para arranque por red (o netbooting). Con suerte, debería poder hacer un netboot en cualquier computador reciente en el ambiente ofrecido por el CD de Instalación.

La magia está en el guión linuxrc de genkernel: este intentará realizar un netmount (montaje vía red) del CD de Instalación usando NFS. A partir de aquí los guiones de inicio del CD de Instalación pueden tomar el control como si el CD estuviera presente de forma local.

Construir el Núcleo y las Imágenes Initrd con Soporte para Arranque por Red

Para activar el soporte de arranque por red incluya las siguientes opciones mientras configura el núcleo:

Aviso: El soporte para arranque por red con genkernel es experimental y puede presentar problemas.

Primero, la imagen del núcleo debe incluir los drivers para sus tarjetas de interfaz de red (NIC). Normalmente, los drivers para tales dispositivos serán compilados como módulos. Sin embargo, es esencial (para el arranque por red) tener dichos drivers compilados directamente en la imagen del núcleo y no como módulos.

Listado de Código 4.1: Configurar un núcleo de la serie 2.6.x para dar soporte al controlador de las tarjetas de red

Device Drivers --->
   Networking Support --->
      Ethernet (10 or 100Mbit)  --->
         [*] Ethernet (10 or 100Mbit)
         <*>   El controlador para su tarjeta de red
(Asegúrese de seleccionar <*> y no <M>)

Segundo, sugerimos que active las opciones: IP: kernel level autoconfiguration y IP: DHCP support. Esto evita una capa innecesaria de complejidad ya que la dirección IP y la ruta NFS al CD de instalación pueden ser configuradas en un servidor DHCP. Por supuesto, esto significa que la línea de comandos del núcleo permanecerá constante para todas las máquinas — lo que es muy importante para realizar etherbooting (arranque vía ethernet).

Listado de Código 4.2: Configurar un núcleo de la serie 2.6.x para dar soporte a DHCP

Device Drivers --->
   Networking Support --->
      Networking options
         [*] TCP/IP networking--->
         [*]   IP: kernel level autoconfiguration
         [*]     IP: DHCP support
(Estas opciones le dicen al núcleo que envíe una petición DHCP al iniciar el arranque)

Adicionalmente, debería activar SquashFS ya que la mayoría de los CD de Instalación modernos de Gentoo lo requieren. El soporte para SquashFS no se incluye en el árbol genérico de fuentes del núcleo. Para activar SquashFS, debe conseguir y aplicar los parches necesarios para las fuentes genéricas del núcleo o instalar gentoo-sources.

Listado de Código 4.3: Configurar el núcleo para dar soporte a SquashFS

File systems--->
   Miscellaneous filesystems --->
      [*] SquashFS 2.X - Squashed file system support

Una vez completado el proceso de compilación, cree un tarball (tar.gz) que contenga los módulos del núcleo. Este paso es solamente necesario si su versión del núcleo no concuerda con la versión de la imagen del núcleo del CD de Instalación.

Listado de Código 4.4: Crear un tarball comprimido que contenga los módulos del núcleo

(Crea un tar.gz que contiene todos los módulos)
# cd /
#  tar -cf /tmp/modules-X.Y.Z.tar.gz /lib/modules/X.Y.Z/

Dependiendo de su mecanismo de arranque por red necesitará hacer alguno de los siguientes pasos:

Listado de Código 4.5: Crear una imagen de arranque

(Crea una imagen de etherboot)
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" núcleo... initrd... > etherboot.img

(Crea una imagen OpenBoot / SPARC64 TFTP)
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img (Esta en la imagen de arranque)

(PXE no necesita de más pasos, el núcleo e initrd pueden ser usados tal cual)

Finalmente, copie este núcleo a su servidor TFTP. Los detalles dependen de la arquitectura y están más allá del alcance de esta guía. Por favor, consulte la documentación de su plataforma.

Configuración de NFS

Para configurar un recurso compartido de NFS que contenga el CD de Instalación, use el dispositivo loop para montar la imagen ISO y luego copie los contenidos del CD en el recurso NFS. Como característica extra, los guiones initrd de genkernel extraerán todos los archivos tar.gz ubicados en el directorio /nfs/livecd/add/. Todo lo que debe hacer aquí es copiar el archivo modules-X.Y.Z.tar.gz al directorio /nfs/livecd/add/.

Listado de Código 4.6: Preparar el recurso compartido NFS

(Esto asume que /nfs/livecd es un recurso NFS compartido)
# mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom

(Copie modules.tar.gz en /add)
# mkdir /nfs/livecd/add
# cp /tmp/modules-X.Y.Z.tar.gz /nfs/livecd/add

Configuración de DHCP

Las imágenes del arranque por red (netboot) le pedirán a su servidor DHCP una IP así como el parámetro de la ruta raíz. Ambos pueden ser especificados por máquina usando un dirección MAC para identificarlas:

Listado de Código 4.7: Configuración de ejemplo de cliente en dhcpd.conf

...

host netbootableMachine {
         hardware ethernet 11:22:33:44:55:66;
         fixed-address 192.168.1.10;
         option root-path "192.168.1.2:/nfs/livecd";
}
# Aquí, 192.168.1.2 el servidor NFS
# Mientras que 192.168.1.10 será la dirección IP de la máquina que arrancará por red
...

Instrucciones de Arranque por Red

El arranque por red es nuevamente muy dependiente de la plataforma. La parte importante es especificar los parámetros ip=dhcp y init=/linuxrc en la línea de comandos del núcleo pues esto activará la interfaz de red y le dirá a los guiones initrd que monten el CD de Instalación vía NFS. Aquí le mostramos algunos consejos dependientes de la plataforma:

Listado de Código 4.8: Instrucciones de Arranque por Red

# Etherboot - Inserte el disco de etherboot en la disquetera y reinicie
# La línea de comandos del núcleo se especificó cuando se construyó la imagen

# Sparc64 - Presione Stop-A en el intérprete de arranque
ok boot net ip=dhcp init=/linuxrc

# PXE - Configure pxelinux (parte de syslinux), luego cree un archivo pxelinux.cfg/default similar a:

DEFAULT gentoo
TIMEOUT 40
PROMPT 1

LABEL gentoo
    KERNEL kernel-X.Y.Z
    APPEND initrd=initrd-X.Y.Z root=/dev/ram0 init=/linuxrc ip=dhcp

5.  Iniciar un initramfs de genkernel

Introducción

Si instaló un initramfs con genkernel, definitivamente, debería echar un vistazo a las diversas opciones de inicio que puede (o necesita) definir en la configuración de su gestor de arranque. Las más comunes se han incluido en esta guía para su referencia.

Cargar LVM o software de RAID

Si su sistema utiliza LVM o software de RAID, sin ninguna duda, tendrá que construir el initramfs utilizando las opciones --lvm y --mdadm (¿no lo ha hecho?). Tampoco deberá olvidar habilitar este soporte también durante el inicio. Esto se puede hacer mediante las opciones dolvm y domdadm.

Listado de Código 5.1: Habilitar soporte LVM y/o MDADM

# Ejemplo para GRUB 1.x
title Gentoo Linux
root (hd0,0)
kernel /vmlinuz root=/dev/md3 dolvm domdadm
initrd /initramfs-genkernel-x86_64-3.4.3

Iniciar en modo único usuario (single-user)

Si, por alguna razón, el inicio falla, debería poder rescatar su sistema iniciando en modo único usuario (single-user). Esto carga únicamente los servicios necesarios y a continuación ofrece una intérprete de comandos de rescate (root).

Listado de Código 5.2: Iniciar en modo único usuario (single-user)

# Ejemplo para GRUB 1.x
title Gentoo Linux
root (hd0,0)
kernel /vmlinuz root=/dev/md3 init_opts=S
initrd /initramfs-genkernel-x86_64-3.4.3

6.  Conclusión

¿Automatizar o no automatizar?

El propósito de genkernel es otorgar un alternativa (más fácil) a la clásica y forma efectiva de compilar el núcleo. Como siempre, puede decidir si quiere o no automatizar el proceso de compilación del núcleo.



Imprimir

Página actualizada 29 de junio, 2012

Sumario: Esta guía intenta proporcionar un marco de referencia para todas las funciones proporcionadas por genkernel.

Tim Yamin
Autor

Jimi Ayodele
Colaborador

Thomas Seiler
Soporte NFS

Joshua Saddler
Editor

Sebastian Pipping
Contributor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Ervin Sarkisov
Traductor

Andrés Pereira
Traductor

Sergio D. Rodríguez Inclan
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.