![]() | Nota |
---|---|
Los procedimientos en esta sección se aplican a la arquitectura x86. Si tiene una arquitectura diferente, la ubicación de los archivos y los archivos a instalar podrían ser diferentes. |
El núcleo
se encuentra en arch/i386/boot/bzImage
. El
directorio estándar en el cual se instalan los núcleos es
/boot
. También debe 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.6.10-pepe
. La secuencia
de comandos que Usted tendrá que teclear es:
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10-pepe # cp System.map /boot/System.map-2.6.10-pepe
Ahora tiene que decirle al cargador de arranque acerca de su núcleo nuevo. Hay dos cargadores de arranque: GRUB o LILO. Note que Mandrakelinux está configurado con LILO de manera predeterminada.
La manera más simple de actualizar a LILO es usar drakboot (ver DrakBoot: cambiar su configuración de arranque en la Guía de comienzo) Alternativamente, Usted 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 default="linux" keytable=/boot/es-latin1.klt prompt nowarn timeout=50 message=/boot/message menu-scheme=wb:bw:wb:bw image=/boot/vmlinuz label="linux" root=/dev/hda1 initrd=/boot/initrd.img append="devfs=mount resume=/dev/hda5" read-only other=/dev/fd0 label="floppy" unsafe
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 default="linux" keytable=/boot/es-latin1.klt prompt nowarn timeout=50 message=/boot/message menu-scheme=wb:bw:wb:bw
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 quita la directiva
timeout
, LILO esperará hasta que Usted
haya tecleado algo.
Luego
viene una sección linux
:
image=/boot/vmlinuz label="linux" root=/dev/hda1 initrd=/boot/initrd.img append="devfs=mount resume=/dev/hda5" 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 dice a LILO que debería
montar el sistema de archivos raíz como sólo de lectura al
arrancar: si esta directiva no está presente, recibirá un mensaje
de advertencia. La directiva append=
especifica
opciones para pasar al núcleo durante el arranque.
Luego
viene la sección floppy
:
other=/dev/fd0 label="floppy" unsafe
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 para arrancar desde un disquete.
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 puede ponerla dentro de otra sección. La misma debería lucir así:
image=/boot/vmlinuz-2.6.10-pepe label="pepe" root=/dev/hda1 read-only append="devfs=mount resume=/dev/hda5"
Por supuesto, debe adaptar la entrada a la configuración de su sistema.
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 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/vmlinuz-2.6.10-pepe label="pepe" root=/dev/hda1 read-only append="devfs=mount resume=/dev/hda5" # # El núcleo original # image=/boot/vmlinuz label="linux" root=/dev/hda1 read-only append="devfs=mount resume=/dev/hda5" # # Sección de disquete # other=/dev/floppy label="floppy" unsafe
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 floppy #
De esta forma, Usted puede compilar tantos núcleos como desee, agregando tantas secciones como sea necesario. Ahora, sólo resta reiniciar la máquina para probar su núcleo nuevo. Note que si LILO muestra errores durante la instalación, no modifica la configuración de su sector de arranque. LILO sólo modifica su configuración si no encuentra errores en el proceso.
Obviamente, ¡retenga la posibilidad de iniciar su núcleo corriente! La forma más fácil de actualizar a GRUB es usar drakboot (consulte DrakBoot: cambiar su configuración de arranque en Guía de comienzo). Alternativamente, Usted 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 Usted ha instalado su distribución Mandrakelinux
y antes de la modificación:
timeout 5 color black/cyan yellow/cyan i18n (hd0,4)/boot/grub/messages keytable (hd0,4)/boot/fr-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 floppy root (fd0) chainloader +1
Este
archivo está compuesto por dos partes: el encabezado con las
opciones comunes (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 (en segundos)
durante el cual GRUB esperará antes de cargar la imagen
predeterminada (esto se define por la directiva default
0
en las opciones comunes, es decir la primera imagen en
este caso). La directiva keytable
,
si está presente, define donde encontrar la distribución del
teclado para su teclado. 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
según lo ve el BIOS ¡Note que la cuenta de los mismos
empieza desde cero!
Luego
viene la sección de las diferentes imágenes. En este ejemplo se
definen tres imágenes: linux
,
failsafe
, windows
, y
floppy
.
La
sección linux
comienza por decir a
GRUB el núcleo que se tiene que cargar (kernel
hd(0,4)/boot/vmlinuz
), seguido por las opciones a
pasar a dicho núcleo. En este caso,
root=/dev/hda5
le dirá al núcleo que el
sistema de archivos raíz está ubicado en
/dev/hda5
. De hecho,
/dev/hda5
es el equivalente de
hd(0,4)
de GRUB, pero nada le impide
al núcleo de estar en una partición diferente que el sistema de
archivos raíz.
La
sección 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”.
La
sección floppy
, simplemente arranca a su
sistema desde un disquete en la primera disquetera, cualquiera
sea el sistema que esté instalado sobre el mismo. Puede ser un
disquete de arranque de Windows®, o incluso un núcleo de
GNU/Linux en un disquete.
![]() | 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 prohibe ponerla en otro lugar:
title pepe kernel (hd0,4)/boot/vmlinuz-2.6.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, 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
Usted 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 Usted 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[44], el número de modo es
0x315
, por lo que debe agregar la
directiva:
vga=0x315
y ahora su entrada se parece a lo siguiente:
title pepe kernel (hd0,4)/boot/vmlinuz-2.6.8-foo root=/dev/hda5 vga=0x315
Para mayor información, por favor consulte las páginas Info acerca de GRUB (info grub).
[44] 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.