16.6. Instalando el núcleo nuevo

El núcleo se encuentra en arch/i386/boot/bzImage (o arch/i386/boot/zImage si ha elegido make zImage). El directorio estándar en el cual se instalan los núcleos es /boot. También necesita copiar el archivo System.map para asegurarse que algunos programas (por ejemplo, top) funcionarán correctamente. Otra vez, consejos para una buena práctica: nombre a dichos archivos en base a la versión del núcleo. Asumamos que la versión de su núcleo es 2.4.4-pepe. La secuencia de comandos que Ud. tendrá que teclear es:

$ cp arch/i386/boot/bzImage /boot/vmlinux-2.4.10-pepe
$ cp System.map /boot/System.map-2.4.10-pepe

Después de esto, tiene que decirle al cargador de arranque acerca de su núcleo nuevo. Hay dos posibilidades: grub o LILO. Note que Mandrake Linux está configurado con LILO como cargador de arranque predeterminado.

16.6.1. Actualizando a grub

Obviamente, ¡retenga la posibilidad de iniciar su núcleo corriente! La forma más fácil de actualizar a grub es usar drakboot (vea el capítulo drakboot: cambiar su configuración de arranque de la Guía del Usuario). Alternativamente, Ud. puede editar manualmente el archivo de configuración de la manera siguiente.

Debe editar el archivo /boot/grub/menu.lst. Así es como luce un archivo menu.lst típico, luego de que Ud. ha instalado su distribución Mandrake Linux y antes de la modificación:

timeout 5
color black/cyan yellow/cyan
i18n (hd0,4)/boot/grub/messages
keytable (hd0,4)/boot/es-latin1.klt
default 0

title linux
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5  

title failsafe
kernel (hd0,4)/boot/vmlinuz root=/dev/hda5  failsafe 

title Windows
root (hd0,0)
makeactive
chainloader  +1 

title floppy
root (fd0)
chainloader +1

Este archivo está compuesto por dos partes: el encabezado con las opciones en común (las primeras cinco líneas), y las imágenes (o entradas), cada una correspondiente a un núcleo de GNU/Linux diferente o al sistema operativo (SO) que sea. timeout 5 define el tiempo del que Ud. dispone para elegir una opción en particular antes que grub lance la predeterminada. Dicha opción predeterminada está definida por default 0, lo cual significa que la primera sección definida es la predeterminada. La línea color define los colores del menú; la línea i18n define donde se debe leer el mensaje de bienvenida: (hd0,4) significa que el mismo está ubicado en la cuarta partición del primer disco rígido. La opción keytable (hd0,4)/boot/es-latin1.klt le dice a grub el tipo de teclado usado cuando Ud. le suministra argumentos al momento del arranque. En este ejemplo es una distribución de teclado Español. Si no hay entrada alguna de este tipo, se asume un teclado qwerty común. Todos los hd(x,y) que ve se refieren a la partición número y del disco número x como lo ve el BIOS

Luego viene la sección de las diferentes imágenes. Aquí tenemos cuatro de ellas: linux, failsafe, windows, y floppy.

Nota

Dependiendo del nivel de seguridad que use en su sistema, algunas de las entradas descriptas aquí pueden no estar presentes en su archivo.

Ahora, vayamos al grano. Necesitamos agregar otra sección para decirle a grub acerca de nuestro núcleo nuevo. En este ejemplo, la misma se ubicará al comienzo de las otras entradas, pero nada le prohíbe ponerla en otro lugar:

title pepe 
kernel (hd0,4)/boot/vmlinuz-2.4.10-pepe root=/dev/hda5  

¡No se olvide de adaptar el archivo a su configuración! El sistema de archivos raíz de GNU/Linux aquí está en /dev/hda5 pero bien podría estar en otro lugar de su sistema.

Y eso es todo. A diferencia de LILO, como veremos debajo, no queda cosa por hacer. Simplemente vuelva a iniciar su computadora y aparecerá la entrada nueva que definió recién. Sólo tiene que seleccionarla del menú y arrancará su núcleo nuevo.

Si Ud. compiló su núcleo con el framebuffer, probablemente querrá usarlo: en este caso, debe agregar una directiva al núcleo que le dice cual es la resolución en la que Ud. quiere arrancar. La lista de modos está disponible en el archivo /usr/src/linux/Documentation/fb/vesafb.txt (¡sólo en el caso del framebuffer VESA! De lo contrario, debe referirse al archivo correspondiente). Para el modo 800x600 en 32 bits[1], el número de modo es 0x315, por lo cual Ud. debe agregar la directiva:

vga=0x315

y ahora su entrada se parece a lo siguiente:
title pepe
kernel (hd0,4)/boot/vmlinuz-2.4.10-pepe root=/dev/hda5 vga=0x315 
Para mayor información, por favor consulte las páginas Info acerca de grub (info grub).

16.6.2. Actualizando a LILO

La manera más simple de actualizar a LILO es usar drakboot (ver drakboot: cambiar su configuración de arranque en la Guía del Usuario). Alternativamente, Ud. puede editar manualmente el archivo de configuración de la manera siguiente.

El archivo de configuración de LILO es /etc/lilo.conf. Un archivo lilo.conf típico luce así:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
keytable=/boot/es-latin1.klt
lba32
prompt
timeout=50
message=/boot/message
image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only
other=/dev/hda2
        label=dos
        table=/dev/hda 

Un archivo lilo.conf consiste de una sección principal, seguida de una sección para arrancar cada sistema operativo. En el ejemplo anterior, la sección principal se compone de las directivas siguientes:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=normal
default=linux
keytable=/boot/es-latin1.klt
lba32
prompt
timeout=50
message=/boot/message

La directiva boot= le dice a LILO donde instalar su sector de arranque; en este caso, es en el MBR (Master Boot Record, Registro Principal de Arranque) del primer disco rígido IDE. Si quiere hacer un disquete de arranque de LILO, simplemente reemplace /dev/hda con /dev/fd0. La directiva prompt le pide a LILO que muestre el menú al arrancar. Como se configura un tiempo de espera, LILO iniciará la imagen predeterminada después de 5 segundos (timeout=50). Si remueve la directiva timeout, LILO esperará hasta que Ud. haya tecleado algo.

Luego viene una sección linux:

image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only

Una sección para arrancar un núcleo de GNU/Linux siempre comienza con una directiva image=, seguida de la ruta completa a un núcleo GNU/Linux válido. Como cualquier sección, contiene una directiva label= como identificador único. La directiva root= le dice a LILO qué partición contiene el sistema de archivos raíz para este núcleo. El suyo puede ser distinto al ejemplo... La directiva read-only le ordena a LILO a montar este sistema de archivos raíz como sólo de lectura al arrancar: si esta directiva no está presente, recibirá un mensaje de advertencia.

Luego viene la sección Windows:

other=/dev/hda2
        label=dos
        table=/dev/hda

De hecho, LILO usa una sección que empiece con other= para arrancar cualquier sistema operativo que no sea GNU/Linux: el argumento de esta directiva es la ubicación del sector de arranque de dicho sistema operativo, y, en este caso, es un sistema Windows. Para encontrar el sector de arranque, ubicado al comienzo de la partición que alberga a este otro sistema, GNU/Linux también necesita saber la ubicación de la tabla de particiones que le permitirá ubicar la partición en cuestión, esto es lo que hace la directiva table=. La directiva label= identifica al sistema, como en la sección linux de arriba.

Ahora, es momento de agregar una sección para nuestro núcleo nuevo. Puede poner esta sección en cualquier lugar debajo de la sección principal, pero no "dentro" de otra sección. La misma lucirá así:

image=/boot/vmlinux-2.4.10-pepe
        label=foo
        root=/dev/hda1
        read-only

Por supuesto, ¡Ud. debe adaptarlo a su configuración! Tomamos una situación diferente a la presentada con anterioridad para grub adrede...

Si compiló su núcleo con el framebuffer, debe referirse al párrafo de arriba correspondiente a grub, ahora la diferencia es que la opción está sola en una línea nueva:

vga=0x315

Entonces, así luce su lilo.conf luego de la modificación, decorado con algunos comentarios adicionales (todas las líneas que comienzan con #), que serán ignorados por LILO:

#
# Sección principal
#
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
# Al arrancar, queremos VGA normal. El framebuffer cambiará resoluciones por
# sí solo si lo usamos:
vga=normal
# Nuestro mensaje de arranque...
message=/boot/message
# Qué arrancar predeterminadamente. Pongamos nuestro núcleo nuevo aquí:
default=pepe
# Mostrar el prompt...
prompt
# ... esperar 5 segundos
timeout=50
#
# Nuestro núcleo nuevo: imagen predeterminada
#
image=/boot/vmlinux-2.4.10-pepe
        label=pepe
        root=/dev/hda1
        read-only
# Si se usa el framebuffer VESA:
        vga=0x315
#
# El núcleo original
#
image=/boot/vmlinuz-2.4.8-17mdk
        label=linux
        root=/dev/hda1
        read-only
#
# Sección Windows
#
other=/dev/hda2
        label=dos
        table=/dev/hda

Esto bien podría ser como lucirá su archivo lilo.conf... pero recuerde, nuevamente, de adaptar el archivo de acuerdo con su configuración.

Ahora que se ha modificado adecuadamente el archivo, y a diferencia de grub que no lo necesita, debe indicarle a LILO que cambie el sector de arranque:

$ lilo
Added pepe *
Added linux
Added dos
$

De esta forma, Ud. puede compilar tantos núcleos como quiera, agregando tantas secciones como sea necesario. Ahora, sólo resta reiniciar la máquina para probar su núcleo nuevo.

Notas

[1]

8 bits significa 28 colores, es decir 256; 16 bits significa 216 colores, es decir 64k, es decir 65536; en 24 bits así como en 32 bits, el color se codifica en 24 bits, es decir 224 colores posibles, en otras palabras exactamente 16M, o un poco más de 16 millones.


Tux sobre Estrella por MandrakeSoft Linux es una marca registrada de Linus Torvalds. Todas las otras marcas registradas y copyrights son la propiedad de sus respectivos dueños.
A menos que se diga lo contrario, todo el contenido de estas páginas y todas las imágenes tienen Copyright de MandrakeSoft S.A. y de MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/