Mandrake Linux 8.2: Manual de Referencia | ||
---|---|---|
Anterior | Capítulo 14. Compilando e instalando núcleos nuevos | Siguiente |
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.
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.
La sección linux comienza por decirle 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.
![]() | 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 |
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.
[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. |
Anterior | Inicio | Siguiente |
Compilar el núcleo y los módulos, instalar La Bestia | Subir | Solución de problemas |