![]() | 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.8-pepe. La secuencia de comandos que Usted tendrá que teclear es:
$ cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.8-pepe $ cp System.map /boot/System.map-2.6.8-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.8-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.8-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 quiera, 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, significa que nada ha sido cambiado. 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 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 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
Luego viene la sección de las diferentes imágenes. Aquí tenemos cuatro de ellas: 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 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®.
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.8-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[40], 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).
[40] 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.