14.5. Instalando el núcleo nuevo

Ahora, con su núcleo ya compilado satisfactoriamente, todo lo que tiene que hacer es instalarlo. Nuevamente en pos de la claridad y para identificar a sus núcleos inequívocamente, es preferible mantener cierta disciplina con los nombres. Asumiremos que está instalando un núcleo 2.2.17. Los tipos de comandos son los siguientes:

$ make install

Después de esto, todavía tiene que actualizar el cargador de arranque que Ud. utiliza. Hay dos posibilidades principales: GRUB o LILO. Note que Linux-Mandrake ahora se proporciona con GRUB como cargador de arranque predeterminado.

 

 

14.5.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 sus configuraciones de arranque de la Guía del Usuario). Alternativamente, Ud. puede editar manualmente el archivo de configuración de la manera siguiente.

Ahora 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 Linux-Mandrake 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 secciones (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.

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

  1. La línea de opciones para la sección linux le dice a GRUB que queremos cargar la imagen de arranque primaria denominada vmlinuz que se encuentra en el directorio /boot/ de la cuarta partición del primer disco rígido. La opción root=/dev/hda5 no es una opción de GRUB, esta es, de hecho, una opción pasada al núcleo para informarle que el sistema de archivos raíz se ubica en /dev/hda5.

  2. La entrada failsafe se parece muchísimo a la anterior, a diferencia que nosotros le pasaremos un argumento al núcleo (failsafe) lo cual le instruye que se ponga en el modo "single" o "rescue".

  3. La entrada Windows le indica a GRUB que simplemente cargue el sector de arranque de la primera partición, el cual probablemente contiene un sector de arranque de Windows.

  4. La última entrada, floppy, simplemente arranca a su sistema desde un disquete en la primera disquetera, cualquiera sea el sistema que esté instalado sobre el mismo.

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 GNU/Linux para poder iniciar con el núcleo nuevo. En este ejemplo, la misma se ubicará al comienzo de las otras entradas, pero nada le prohibe ponerla en otro lugar:

title linux-experimental
kernel (hd0,4)/boot/vmlinuz-2.2.17 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. Su sistema está listo, Ud. puede volver a arrancar su computadora ¡y disfrutar de su núcleo completamente 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 linux-experimental
kernel (hd0,4)/boot/vmlinuz-2.2.17 root=/dev/hda5 vga=0x315 

Para mayor información, por favor consulte las páginas info acerca de GRUB (info grub).

14.5.2. Actualizando a LILO

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

Para LILO, Ud. deberá modificar el archivo /etc/lilo.conf. Un archivo lilo.conf típico luce así, luego de haber instalado su paquete LILO y antes de la modificación:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.9-19mdk
        label=linux
        root=/dev/hda1
        read-only
other=/dev/hda2
        label=dos
        table=/dev/hda

Aviso

¡Este ejemplo asume que está usando LILO como el cargador principal! Si está usando System Commander, la directiva boot= será diferente, y probablemente no tenga la sección other.

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
prompt
timeout=50

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 prompt al arrancar y comience el procedimiento luego de 5 segundos (timeout=50). Si remueve la directiva timeout=, LILO esperará hasta que Ud. haya ingresado algo.

Luego viene una sección linux:

image=/boot/vmlinuz-2.2.9-19mdk
        label=linux
        root=/dev/hda1
        read-only

Una sección linux siempre comienza con la 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 root para este sistema GNU/Linux. El suyo puede ser distinto al ejemplo. La directiva read-only le ordena a LILO a montar este sistema de archivos root 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.

Antes de agregar su sección linux, mataremos dos pájaros de un tiro :-) Vamos a componer un mensaje para mostrar en el arranque antes que aparezca el prompt de LILO, para explicar cómo usar LILO:

$ cat >/boot/message <<EOF 
> Bienvenido, este es LILO (LInux LOader). 
> presione TAB para una lista de las imágenes de arranque.
> Ud. tiene:
> * exp : comenzar Linux-Mandrake con su núcleo nuevo 
> * linux : núcleo original de Linux-Mandrake 
> * dos : Windows 
> Al presionar INTRO sin ingresar el nombre de una imagen 
> arrancará la primer imagen en la lista, es decir exp .
> EOF 
$

¡Y voilà! Para mostrar este mensaje al arrancar, simplemente agregue la directiva:

message=/boot/message

en la sección principal de lilo.conf. Ahora, Ud. debe agregar la sección GNU/Linux para poder arrancar con el núcleo nuevo. En este ejemplo, se pondrá al comienzo, pero nada le impide ponerlo en otro sitio:

image=/boot/vmlinuz-2.2.17
        label=exp
        root=/dev/hda1
        read-only

Si compiló su núcleo con el framebuffer, debe referirse al párrafo anterior 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
# Nuestro mensaje de invitación
message=/boot/message
# Presentar el prompt...
prompt
# ... esperar 5 segundos
timeout=50
#
# Nuestro núcleo nuevo: imagen predeterminada
#
image=/boot/vmlinuz-2.2.17
        label=exp
        root=/dev/hda1
        read-only
# Si se usa el framebuffer VESA:
        vga=0x315
#
# El núcleo original
#
image=/boot/vmlinuz-2.2.15-19mdk
        label=linux
        root=/dev/hda1
        read-only
#
# Sección de Windows
#
other=/dev/hda2
        label=dos
        table=/dev/hda

¡No se olvide de adaptar el archivo de acuerdo con su configuración! El sistema de archivos raíz de GNU/Linux aquí esta en /dev/hda1 pero bien podría estar en cualquier otro lugar en su sistema, y lo mismo se aplica para Windows. Ahora que se ha modificado adecuadamente el archivo, debe indicarle a LILO que cambie el sector de arranque:

$ lilo 
Added exp *
Added linux
Added dos
$

De esta forma, Ud. puede compilar tantos núcleos como quiera, agregando tantas secciones GNU/Linux como sea necesario. 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. 2000.
http://www.linux-mandrake.com/