Un programa de arranque es un programa que reside en los sectores de inicio de un disco, por ejemplo, el MBR (Master Boot Record) del disco duro. Después de probar el sistema durante la inicialización, el BIOS (Basic Input/ Output System) pasa el control al MBR así indica al sistema que se inicie a partir de ese punto. Después, el programa residente en el MBR se ejecuta. Ese programa se llama programa de arranque. Su misión es transferir el control al sistema operativo, y de ese modo ese pasará a controlar el proceso de inicialización.
Hay muchos programas de arranque, incluyendo al GNU GRUB (Grand Unified Boot Loader), Bootmanager, LILO (Linux Loader), NTLDR (boot loader for Windows NT systems), etc. Yo me he decidido por hablar del GNU GRUB y la forma de usarlo.
GRUB es un potente programa de arranque, que puede cargar una gran variedad de sistemas operativos como Windows, DOS, Linux, GNU Hurd, *BSD, etc.
Actualmente LILO es el programa de arranque mas popular, utilizado por la mayoría de usuarios con arranque múltiple de sistemas. Pero si utilizas LILO, tienes que acordarte de volver a arrancar el LILO cada vez que cambias la configuración del sistema o instalas un Kernel nuevo. LILO también tiene menos flexibilidad que el GRUB.
GRUB es otro nombre por la flexibilidad. Su ultima versión, 0.5.96.1, soporta ext2 (un archivo de sistema que utiliza el Linux), FAT16 y FAT32 (utilizado por el Win9x y ME), FFS (Fast File System utilizador por *BSD UNIX), ReiserFS (un Nuevo archivo de sistema especializado, y creado por Linux e integrado en el Linux Kernel 2.4.1), y minix (un Viejo archivo de sistema creado para el MINIX OS, también usado por los primeros Linux). Con el GRUB, puedes “ver” esos archivos de sistema sin necesidad de cargar un sistema operativo. Por ejemplo, si quieres ver la fecha y la hora almacenada en un fichero de texto y no tienes tiempo para cargar el sistema operativo, puedes usar el shell del GRUB (prompt "grup>) i escribe:
grub> cat (partition number)/home/god/filename.txt.Y obtendrás todo lo que fichero del sistema contiene, incluyendo la fecha y el tiempo.
El mejor uso del GRUB es que puedes cargar cualquier Kernel en cualquier partición. Por ejemplo, si te olvidas de añadir a la lista el nuevo kernel compilado, normalmente necesitarías inicializar el sistema, añadirlo en la lista, y después volver a arrancar el sistema. Pero con el GRUB, tu simplemente utilizas el shell y cargas el archivo “image” del kernel deseado.
Ahora explicaré los tres pasos primarios para usar el GRUB: compilación, instalación, y configuración.
Descárgate el código del GRUB desde ftp://alpha.gnu.org/pub/gnu/grub.
Extrae el archivo comprimido como "tar -xvzf filename.tar.gz"/ En mi caso, el nombre del archivo era grub-0.5.96.1.tar.gz, así que hice
# tar -xvzf grub-0.5.96.1.tar.gzEsa orden extrae muchos archivos i directorios a un directorio llamado grub-0.5.96.1 Ahora haz lo siguiente:
[root@heaven ~/grub-0.5.96.1 ]# ./configure
Si quieres personalizar el GRUB para incluir tus ficheros particulares de sistema, y la tarjeta de red, o para borrar el soporte de las tarjetas de red que no necesites, ejecuta:
[root@heaven ~/grub-0.5.96.1 ]# ./configure --help
Esa orden te mostrará todas las opciones. Ahora utiliza los prefijos de activar y desactivar (en Inglés Enable y Disable) para añadir o borrar el soporte para tarjetas de red específicas.
(NOTA: GRUB soporta la inicialización de la red.)
Para empezar el proceso de compilación, escribe:
[root@heaven ~/grub-0.5.96.1 ]# make
Para instalar los archivos en sus debidos puestos, escribe:
[root@heaven ~/grub-0.5.96.1 ]# make install
Ahora estás preparado para instalar realmente el GRUB.
Ahora sería una buena idea para guardar todos los archivos relacionados con la inicialización del GRUB en un directorio como /boot/grub. Para hacer eso, sigue ese procedimiento:
1. Por defecto todos los archivos del GRUB están instalados en el /usr/share/grub/i386-pc o /usr/local/share/grub/i386-pc en función de como las variables de tu shell hayan sido establecidas.
2. Haz un nuevo directorio llamado /boot/grub. Después copia los siguientes archivos en el directorio:
stage1 stage2 *_stage1_5
Definiré esos archivos mas tarde. También copia el programa del GRUB (que tendría que estar en /usr/sbin o /usr/local/sbin) en el directorio de /boot/grub.
Antes de instalar el GRUB, necesitas saber como GRUB entiende tu disco duro i la información de las particiones. Primero de todo, empieza contando los las particiones desde 0, no a partir de 1. En el Linux, tu primer disco duro adjunto al master primario es nombrado “hda”. En el GRUB se convierte en el “hd0”. De la misma forma, tu primer disco flexible en el GRUB es “fd0”. Pero la primera, segunda y tercera partición en el primer disco duro (hda1, hda2 y hda3), se convierten en “hd0,0”, “hd0,1” y hd0,2” en GRUB. Nota: la coma es una parte integral de la nomenclatura del GRUB.
Para integrar los dos campos (el número del disco i de la partición) al alrededor de la coma, utiliza los paréntesis. Por ejemplo: (hd0,0) (hd0,1) (hd0,2) y así sucesivamente. (hd0,0) es la primera partición en el primer disco duro. De forma parecida és el (hd1,5) és la sexta partición en el Segundo disco duro y (hd2,0) es la primera partición en el tercer disco duro.
La instalación del GRUB puede separarse en tres partes:
Empieza instalando el GRUB mediante la siguiente orden:
[root@heaven /boot/grub ]# ./grub
Esa orden explora los recursos del sistema para adivinar los recursos de la BIOS y producir un mensaje de salida. Ese procedimiento tarda un poco en completarse.
end_request: I/O error, dev 02:00 (floppy), sector 0 GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
NOTA: Aunque pueda parecer sorprendente, GRUB puede soportar unas ordenes mínimas parecidas al Bash. Para la primera palabra, la tecla TAB muestra la lista para completar los comandos posibles. TAB muestra los posibles terminaciones de dispositivos y nombres de ficheros. Puede que te sorprenda ese aspecto. Aparece una línea como esta:
grub>
Ahora, doy por hecho que has instalado tu Linux en la primera partición extendida en el primer disco o /dev/hda5. Recuerda el convención de nombres del GRUB y renombra la partición citada a (hd0,4). Escribe el siguiente comando:
grub> install (hd0,4)/boot/grub/stage1 (hd0) (hd0,4)/boot/grub/stage2 p (hd0,4)/boot/grub/menu.confAhora examinaremos detalladamente esa orden:
También podemos resumir las ordenes siguientes:
Ahora has completado la instalación del disco duro básico.
Instalación en el disco flexible (floppy):
Para instalar el GRUB en un disco flexible, necesitas conocer y saber como trabaja la orden ‘dd’. Para la inicialización del disco flexible mediante el GRUB, necesitarás poner los archivos stage1 y el stage2 en los sectores de arranque del disco flexible.
Inserta un disco formateado en la disquetera y escribe:
[root@heaven /boot/grub ]# dd if=stage1 of=/dev/fd0 bs=512 count=1
De nuevo examinaremos la orden en detalle:
[root@heaven /boot/grub ]# dd if=stage2 of=/dev/fd0 bs=512 seek=1
Este procedimiento es parecido al stage1 exceptuando un nuevo ítem llamado “seek”. Seek esquiva el valor 1 "bs". Por ejemplo, en el comando anterior, el bs es 512, pero el seek=1 esquivará los primeros 512 bytes de espacio en el disco flexible y continuará en el byte 513rd. Eso preserva la primera operación para no sobrescribir los primeros 512 bytes escribidos en el stage1.
Y así acabas de completar la instalación básica del disco flexible.
En esa sección veremos como inicializar varios sistemas operativos y crear el archivo menu.conf.
Empecemos con los procedimientos de arranque soportados por el GRUB. El arranque puede ser hecho de dos formas:
Hacer el procedimiento de arranque mediante el método A:
Para iniciar el Linux, tengo mi kernel en /boot/ como bzImage y mi sistema de archivos root en /dev/hda5, o (hd0,4) en el GRUB. Y el procedimiento de arranque es el siguiente:
Procedimiento de arranque mediante el método B (ese método asume que tienes otro programa que se ocupa del arranque como el LILO o el NTLDR, instalados en la partición):
Ahora probaremos con otro ejemplo con Windows instalado en el /dev/hda1 o (hd0,0). El procedimiento para arrancar con el Windows es el siguiente:
El archivo menu.conf es utilizado para un arranque múltiple de sistemas operativos y construcción de menús. Crear el archivo menu.conf no es difícil., este utiliza el inglés corriente, como verás en esa sección.
Todas lo que se entra en el menú, empiece con “title TITLENAME” (Titlename se refiere al título que le quieras dar, N del T) sin comas. Puedes dar el TITLENAME a cualquier cosa que quieras.
Para hacer el menú que inicie el Linux:
>Para hacer un menu activo:
title Debian GNU/Linux 2.2 kernel 2.4.1 root (hd0,4) kernel /boot/bzImage.2.4.1 boot #----
(Un corchete (#) delante de una línea es un comentario.)
Para hacer un menu para Windows o DOS:
title Windoze rootnoverify (hd0,0) makeactive chainloader +1 boot #----
Y si quieres tener dos versiones del Windows instalados - digamos que uno es para ti, y otro para tu familia - pero el segundo te indica que no se puede instalar, porque el Windows ya está instalado?
Hay una forma fácil para instalar dos versiones ocultando una partición durante el arranque y después usando la otra. Como opción puedes poner una simple contraseña, pero después la partición no se carga si cometes algún error. Aquí está la forma de como crear dos instalaciones de Windows, hda1 y hda2 o (hd0,0) y (hd0,1) utilizando las ordenes de bloqueo (lock), contraseña (password), ocultar (hide) y mostrar (unhide).
Por Windows "Mi acceso":
title Mi acceso lock unhide (hd0,0) hide (hd0,1) rootnoverify (hd0,0) makeactive chainloader +1 boot #----
Para utilizar la orden de bloqueo (lock) eficazmente necesitas especificar la orden de password cerca del inicio de la configuración del archivo. La sintaxis de la orden de password es la siguiente: password secret ("secret" es el password o contraseña). En cualquier momento puedes introducir la contraseña presionando la p.
Por Windows "Acceso Familiar"
title Acceso Familiar unhide (hd0,1) hide (hd0,0) rootnoverify (hd0,1) makeactive chainloader +1 boot ----
Cualquiera puede arrancar con este acceso, porque no se requiere la contraseña.
Aquí hay otro truco interesante para utilizar en la orden de password o contraseña. Para ocultar los accesos en el menú por defecto o en el archivo de configuración, puedes cargar una lista personal utilizando la siguiente orden:
password secret
password secret (hd0,4)/boot/grub/secret-list.conf
Una orden importante es el “map”, el que puedes usar cuando tienes dos discos duros y un sistema operativo como el Windows, el que no quiere ser arrancado des del Segundo disco duro. Por ejemplo, puedes mapear el hd0 como el hd1 y el hd1 como el hd0. En otras palabras, puedes intercambiar virtualmente los dos discos duros y cargar el sistema operativo deseado. La orden es la siguiente:
grub> map (hd0) (hd1) grub> map (hd1) (hd0)
Para arrancar el FreeBSD:
title FreeBSD 4.0 root (hd0,4,a) kernel /boot/loader boot #----
Lo llamamos “el FreeBSD’s loader”. Puedes ver que el root (hd0,4,a) tiene tres argumentos ya que el FreeBSD hace particiones virtuales de una partición simple. Llamamos a la partición root “a”. Si el FreeBSD ocupa todo un Segundo disco en tu sistema, este tendria que ser el root (hd0,a). Y en lugar de llamar al kernel, llamamos al cargador del FreeBSD, que es mejor para esa misión que el propio kernel.
(NOTA: Recomiendo que antes de probar el OpenBSD y el GNU/Hurd, guardes lo que estés haciendo mediante un “chain loading”.)
Ahora has completado la compilación básica del GRUB, instalación y también la configuración. Las otras cosas que puedas saber de mas sobre el GRUB te servirán como una poderosa forma de controlar el arranque del sistema.
Miscelánea de ordenes del GRUB: :
color green/black o light-gray/blueTambién puedes usar los números correspondientes a los colores.
RECUERDA: todo los valores empiezan de 0, y el 0 es el primer valor.
En mi próximo articulo, quiero probar el Fire GNU/Hurd y el OpenBSD y es posible que algún sistema de arranque mediante red. Pero tendréis que esperar 3 meses o hasta mas, ya que tendré exámenes por el medio. Mientras tanto, estad a la espera.
Para qualquier comentario o error: http://us.f7.mail.yahoo.com/ym/[email protected].