Hacer el sistema LFS arrancable

Tu nuevo y brillante sistema LFS está casi completo. Una de las últimas cosas por hacer es asegurarte de que puedes arrancarlo. Las siguientes instrucciones sólo son aplicables en ordenadores de arquitectura IA-32, o sea PCs. La información sobre “cargadores de arranque” para otras arquitecturas debería estar disponible en las localizaciones usuales de recursos específicos para esas arquitecturas.

El arranque puede ser una tarea compleja. Primero, unas palabras de advertencia. En realidad deberías estar familiarizado con tu actual gestor de arranque y con cualquier otro sistema operativo presente en tu(s) disco(s) duro(s) que desees mantener arrancable. Asegúrate de que tienes preparado un disco de arranque de emergencia para que pueda recuperar tu ordenador si, por cualquier motivo, quedase inutilizable (no arrancable).

Anteriormente, compilamos e instalamos el gestor de arranque Grub en preparación de este paso. El proceso consiste en escribir ciertos ficheros especiales de Grub a su localización específica en el disco duro. Antes de hacer esto te recomendamos encarecidamente que crees un disquete de arranque de Grub por si acaso. Inserta un disquete en blanco y ejecuta los siguientes comandos:

dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1

Saca el disquete y guárdalo en lugar seguro. Ahora iniciaremos el intérprete de comandos de grub:

grub

Grub utiliza su propia estructura de nombres para los discos de la forma (hdn,m), donde n es el número del disco duro y m es el número de la partición, comenzando ambos desde 0. Esto significa que la partición hda1 es (hd0,0) para Grub, y hdb2 es (hd1,1). Al contrario que Linux, Grub no considera los dispositivos CD-ROM como discos duros, por lo que si, por ejemplo, tienes un CD en hdb y un segundo disco duro en hdc, este segundo disco duro seguiría siendo (hd1).

Usando la información anterior, determina la denominación apropiada para tu partición raíz (o partición de arranque, si usas una separada). Para los siguientes ejemplos asumiremos que tu partición raíz (o la de arranque) es hda4

Primero, indícale a Grub donde debe buscar sus ficheros stage{1,2}. Puedes utilizar el tabulador para que Grub te muestre las alternativas:

root (hd0,3)
[Aviso]

Aviso

El siguiente comando sobreescribirá tu actual gestor de arranque. No ejecutes el comando si esto no es lo quieres. Por ejemplo, puede que estés usando otro gestor de arranque para administrar tu MBR (Master Boot Record, Registro Maestro de Arranque). En este escenario, posiblemente tenga más sentido instalar Grub en el “sector de arranque” de la partición LFS, en cuyo caso dicho comando sería setup (hd0,3).

Indícale a Grub que se instale en el MBR (Master Boot Record, Registro Maestro de Arranque) de hda:

setup (hd0)

Si todo está bien, Grub informará que ha encontrado sus ficheros en /boot/grub. Todo lo que hay allí es para él:

quit

Ahora necesitamos crear el fichero “menu.lst”, que define el menú de arranque de Grub:

cat > /boot/grub/menu.lst << "EOF"
# Inicio de /boot/grub/menu.lst

# Inicia por defecto la primera entrada del menú.
default 0

# Espera 30 segundos antes de iniciar la entrada por defecto.
timeout 30

# Usa bonitos colores.
color green/black light-green/black

# La primera entrada es para LFS.
title LFS 5.1
root (hd0,3)
kernel --no-mem-option /boot/lfskernel root=/dev/hda4
EOF
[Nota]

Nota

Por defecto, Grub automáticamente le pasará al núcleo el argumento “mem=xxx” en su línea de comandos. Sin embargo, en ocasiones Grub detecta una cantidad erronea de memoria que puede crear problemas en ciertas situaciones. Es mejor desactivar esta función y dejar que el núcleo determine por si mismo la cantidad de memoria, de aquí el uso de --no-mem-option.

Puede que también quieras añadir una entrada para tu distribución anfitriona. Tendrá un aspecto similar a este:

cat >> /boot/grub/menu.lst << "EOF"
title Red Hat
root (hd0,2)
kernel /boot/kernel-2.4.20 root=/dev/hda3
initrd /boot/initrd-2.4.20
EOF

Igualmente, si necesitas un arranque dual a Windows, la siguiente entrada debería permitirte iniciarlo:

cat >> /boot/grub/menu.lst << "EOF"
title Windows
rootnoverify (hd0,0)
chainloader +1
EOF

Si info grub no te dice todo lo que quieres saber, puedes encontrar más información sobre Grub en su sitio web, localizado en: http://www.gnu.org/software/grub/.