Guía Genkernel de Gentoo Linux
1.
Introducción
Fundamentos
Genkernel está diseñado para permitir a los usuarios que no suelen
compilar un núcleo propio utilizar una configuración similar a la del
CD de Instalación Gentoo que auto-detecta su hardware. Algunos
usuarios también pueden estar interesados en utilizar genkernel para
aquél hardware que precisa de un núcleo operativo e inicialización
antes de que arranque el sistema. Genkernel también compila
automáticamente los módulos de su núcleo, lo que permite usar el
hardware que requiere la carga de estos módulos con parámetros
personalizados.
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 sólo 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 provee la configuración por
defecto.
Instalando genkernel
Puede obtener genkernel ejecutando simplemente el comando emerge
genkernel. Si está usando
la Plataforma
de Referencia de Gentoo (GRP) recuerde instalar los paquetes
binarios usando la opción -k de emerge. Ya que algunos paquetes
de genkernel en GRP pueden ser anticuados, ese parámetro puede no ser
el mismo. Se recomienda consultar siempre genkernel --help para
obtener ayuda sobre cómo usar la versión de genkernel instalada en su
sistema.
2.
Trabajando con genkernel
Cómo usar genkernel
Aunque hay varias formas de ejecutar genkernel, el enfoque menos
inapropiado 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 una ilustración 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: Ejecutando 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 borrar 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. Al usar el 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 facilitar el esfuerzo que involucra 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 y las acciones disponibles de genkernel. Algunos de los
parámetros tienen variantes que llevan a cabo la operación
contraria. Dichas variantes tienen antepuesto el
prefijo no- y sus efectos se encierran dentro de
paréntesis cuadrados, [].
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] el comando
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: Provee 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: Provee 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 delnú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] el
comando make clean antes de compilar su núcleo. El
comando make clean elimina todos los archivos objeto y
dependencias del árbol de fuentes del núcleo.
-
--no-mrproper: Activa [o desactiva] el
comando make mrproper antes de compilar su núcleo. Tal como
el comando 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 serán borrados
del árbol de fuentes del núcleo.
-
--oldconfig: Ejecuta el comando 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) luego 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] el comando
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-initrdmodules: 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.
-
--genzimage: Crea la imagen initrd previo a la imagen del
núcleo. (Este hack actualmente sólo es válido en los sistemas
Pegasos PPC).
Parámetros del Compilador
Genkernel soporta los siguientes parámetros que pueden ser pasados a
aplicaciones relevantes mientras está siendo ensamblado 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 hebras
concurrentes que puede implementar la utilidad make mientras está
siendo compilado el núcleo (y sus utilitarios). 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 sólo 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.
-
--debuglevel=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.
-
--debugfile=/ruta/al/archivo/de/salida: Ignora
el valor ajustado por el parámetro --debuglevel 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í son usados para crear ciertos efectos
durante el inicio del sistema. Algunos de estos parámetros son
meramente 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 sólo 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.
-
--lvm2: 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.
-
--evms2: Incluye suporte de almacenamiento usando
el Sistema de
Administración Empresarial de Volúmenes (EVMS2), si está
disponible. Asegúrese de instalar el paquete evms en su sistema
con USE=static emerge evms2 antes de usar este parámetro de
genkernel. (Al omitir el parámetro
USE=static durante la instalación del paquete fallará al
incluir los binarios estáticos necesarios).
-
--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 encriptado con LUKS que contenga el
sistema raíz de archivos. En el gestor de arranque se coloca el
dispositivo encriptado como el valor de crypt_root (y real_root
será el dispositivo desencriptado que creará LUKS).
-
--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 otros 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 imagenes initrd en el
directorio /boot/, de manera que las imagenes
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:
-
initrd: Construye solamente la imagen initrd
-
bzImage: Construye solamente la imagen del núcleo
-
kernel: Construye solamente la imagen del núcleo y los
módulos
-
all: Construye todas las etapas — initrd, imagen del
núcleo y módulos
La última 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 los parámetros del núcleo root=/dev/ram0 e
init=/linuxrc para pasarles a la imagen del kernel.
-
Añada por ejemplo real_root=/dev/hda3, a los parámetros de
núcleo que pasamos a la imagen en caso que /dev/hda3
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
Editando /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: Ejecutando genkernel (sobrecargado con parámetros) |
# genkernel --debuglevel=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. Lo que sigue a continuación es 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
usa el comando 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
el comando 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 el comando make
clean e implica el parámetro --no-mrproper de genkernel
— lo que esencialmente anula el comando make mrproper.
-
MRPROPER=[yes|no]: Ajustar esta opción a 'yes'
equivale al parámetro --mrproper usado por genkernel e
invoca el comando
make mrproper, el 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 el comando 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]: Luego 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 status 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).
-
DEBUGLEVEL=[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 --debuglevel=0 hará
que se suprima toda la salida generada por genkernel; mientras que
ajustándola a '5' con
--debuglevel=5 tendrá el efecto contrario, es decir,
mostrará al usuario toda la salida generada por genkernel.
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: Ejecutando 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
El utilitario genkernel puede construir el núcleo y las imagenes
initrd que dan soporte para arranque por red, o netbooting. Con
suerte, debería ser capaz de hacer 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 allí los guiones de inicio del CD de
Instalación pueden tomar el control como si el CD estuviera presente
de forma local.
Construyendo el Núcleo y las Imagenes 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 bugs.
|
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: Configurando un núcleo de la serie 2.6.x para dar soporte al driver de las tarjetas de red |
Device Drivers --->
Networking Support --->
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
<*> El driver 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: Configurando 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: Configurando 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: Creando 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: Creando 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: Preparando 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 imagenes 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.
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, es libre
de decidir si quiere o no automatizar el proceso de compilación del
núcleo.
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|