Guía Genkernel de Gentoo Linux
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:
-
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.
-
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.
-
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
|
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
|
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 |
# 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 |
# emerge mknbi
# cd /boot
# mkelf-linux -params="root=/dev/ram0 init=/linuxrc ip=dhcp" núcleo... initrd... > etherboot.img
# emerge sparc-utils
# cd /boot
# elftoaout kernel... -o kernel.aout
# piggyback64 kernel.aout System.map-... initrd-...
# mv kernel.aout openboot.img
|
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 |
# mount /tmp/gentoo-livecd.iso /mnt/cdrom -o loop
# cp -p /mnt/cdrom /nfs/livecd
# umount /mnt/cdrom
# 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";
}
...
|
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 |
ok boot net ip=dhcp init=/linuxrc
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 |
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) |
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.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|