4.4 ¿Cómo se configura e instala LILO?

Imagen de ElSanto

La configuración de LILO se hace en /etc/lilo.conf, pero antes que editar y escribir manualmente la configuración en este archivo, existen interfaces o programas capaces de preparar una configuración conveniente para el usuario, de manera que solamente en el caso de incorporar opciones avanzadas tenga que editar y modificar a mano el archivo.

En primer lugar existe un programa llamado "Quickinst" que acompaña la distribución original del programa LILO. Se trata de un guión (shell script) que produce una configuración mínima de LILO que luego conviene actualizar. Por otra parte la mayor parte de las distribuciones proporcionan un asistente durante la instalación que ayuda a la configuración de LILO. RedHat en su "INSTALL" dedica una parte importante a la configuración de LILO. El"SETUP" de Slackware también lo permite. Distribuciones como Caldera OpenLinux o SuSE disponen de herramientas de instalación que permiten una cómoda configuración de LILO para el usuario (LISA y LIZARD para OpenLinux 1.3 y 2.2, y YAST para SuSE). Quizá Debian ha sido un poco más espartana (al menos hasta Hamm 2.0) en su utilidad de instalación para la configuración de LILO: se limita a escribir una configuración básica de LILO sin soporte para otros SOs ni otros kernels.

El fichero /etc/lilo.conf solo debería ser leído por el superusuario administrador, ya que podría contener contraseñas. En caso de duda, deberíamos hacer (como root)

chmod 600 /etc/lilo.conf

Escribiendo /etc/lilo.conf

El fichero /etc/lilo.conf comienza con una "global section" (sección general) seguida de una o más "system sections" (secciones para cada SO que LILO gestione) que comenzarán por image= (si es un kernel linux) u other= (si es otro SO). Los comentarios en el fichero comienzan con el símbolo de la almohadilla (#).

Consideremos a continuación las líneas más importantes de /etc/lilo.conf:

Sección general

    boot=dispositivo indica el dispositivo donde se instalará LILO. dispositivo puede ser un disquete (/dev/df0), una partición (p.ej. /dev/hdc2) o el disco completo (p.ej /dev/hda) que corresponde a la instalación en el MBR
  • install=ficheroarranque instala el fichero especificado como nuevo sector de arranque. Por defecto es /boot/boot.b
  • map=ficheromapa establece la ubicación del fichero de mapeado. Por defecto es /boot/map.
  • prompt ordena a LILO que muestre un indicador (boot:) al momento de iniciarse el arranque que permita seleccionar el SO a iniciar. Si en este punto pulsamos la tecla TAB, aparecerán los nombres dados a los correspondientes SOs.
  • timeout=tiempo indica el tiempo en décimas de segundo que LILO debe mostrar el indicador anterior. Si pasado ese tiempo, no se indicase nada, LILO cargaría el primer SO configurado.

Sección linux

  • image=kernelimagen donde introducimos el fichero que contiene el kernel, incluyendo la ruta de directorio. Lo más normal es que sea /vmlinuz o /boot/vmlinuz
  • label=nombre donde escribimos un nombre para el SO en cuestión, p. ej., "linux" para linux, pero para otros, puede ser "DOS", "win98"...como máximo pueden ser cadenas de 15 caracteres. Introduciendo ese nombre cuando LILO presenta el indicador (boot:) se selecciona el SO a iniciar.
  • root=partición root donde indicamos el nombre de la partición linux nativa de nuestro sistema linux, p. ej., /dev/hdc2.
  • read-only indica al kernel que ha de montar inicialmente la partición raíz en modo de sólo lectura. Es necesario indicar esta opción para la partición donde se montará el sistema de ficheros raíz.

Sección otros SOs

  • other=partición donde indicamos esta vez la partición de inicio del SO en cuestión, p.ej., /dev/hda1.
  • label=nombre tal como se indicó antes, será el nombre con que etiquetemos dicho SO.
  • loader=gestor de arranque Para cargar el SO, LILO construye un pseudo MBR en su fichero de mapeo. Esta opción especifica el fichero donde tomar el código del pseudo MBR. Por defecto el fichero es /boot.chain.b
  • table=tabla establece el dispositivo fuente para la tabla de partición escrita en el pseudo MBR, usualmente /dev/hda o /dev/sda.

Otras opciones interesantes (solo algunas)

  • vga=modo selecciona el modo VGA al inicio. Los modos válidos son "normal" (80x25), "ext" (extendido, 80x50) o "ask" (preguntar).
  • linear hace que las referencias a los sectores se escriban como direcciones lógicas en lugar de físicas. Se emplea cuando LILO no reconoce correctamente la geometría del disco duro (debido a un remapeado por parte del BIOS).
  • message=ficheromensaje establece el fichero cuyo texto se mostraría durante el arranque. No debe tener más de 24 líneas.
  • append=parámetro permite pasar parámetros y componentes de hardware al kernel como cadena de caracteres. Por ejemplo, si nuestra memoria RAM es superior a 64 Mbytes, por ejemplo, 128, debemos pasarle el dato al kernel durante el arranque mediante (no necesario a partir de la serie 2.2.x)
    append="mem=128M"
  • delay=tiempo establece el tiempo en décimas de segundo que LILO esperará antes de arrancar el primer SO. Generalmente se usa cuando se arranca un único SO, pues si no, la opción prompt es mucho mejor. Por defecto (sin la opción) LILO no espera y se inicia el SO inmediatamente.

Después de haber escrito el fichero /etc/lilo.conf, es necesario lanzar el "map installer" haciendo:

/sbin/lilo

con lo cual LILO escribe un backup del sector de arranque, escribe la primera parte de su código en él y crea un nuevo fichero de mapeado (/boot/map). LILO anuncia entonces por la pantalla los SOs que gestiona, añadiendo una estrella al que se arrancará por defecto. Hay que recalcar que si cualquiera de los componentes de LILO cambia o se modifica su configuración mediante /etc/lilo.conf, es necesario volver a reinstalar LILO con /sbin/lilo.

Configuración mínima de LILO y configuración para gestionar linux y otro sistema operativo (win95)

Consideremos el siguiente fichero /etc/lilo.conf únicamente para arrancar linux:

#
#Fichero de configuración /etc/lilo.conf
#
# Sección general
boot=/dev/hda
delay=100
vga=normal

# Partición linux

image=/vmlinuz
root=/dev/hda1
label=linux
read-only

Este ejemplo se interpreta de la siguiente forma:

LILO se va a instalar en el MBR del disco duro /dev/hda. El modo de video EGA es 80x25, el sistema linux nativo se encuentra en la primera partición del disco duro (/dev/hda1) y la imagen del kernel se encuentra en el fichero /vmlinuz. Despues de 10 segundos, arrancará el sistema linux, cuyo nombre es "linux". Si hacemos /sbin/lilo, entonces aparecerá en el monitor:

Added linux*

Veamos ahora otro fichero de configuración para gestionar linux y win95:
#
# Fichero de configuración /etc/lilo.conf
#
# Sección general

boot=/dev/hda
prompt
timeout=100
vga=normal

# Partición linux

image=/vmlinuz
root=/dev/hdc1
label=linux
read-only

# Partición Windows 95

other=/dev/hda1
label=win95
table=/dev/hda

En este caso, LILO también está en el MBR del primer disco duro (/dev/hda) y hay dos sistemas operativos: linux en la partición /dev/hdc1 y Windows 95 en la partición /dev/hda1. La tabla de partición para el gestor de arranque corresponde al dispositivo /dev/hda.

si hacemos /sbin/lilo, aparecerá el mensaje:

Added linux*
Added win95

lo que significa que LILO va a gestionar los dos sistemas operativos y que por defecto el primero en arrancar será linux.

Cuando reinicialicemos el sistema, si todo ha ido bien aparecerá la palabra LILO seguida del indicador de arranque

LILO boot:

y así permanécera durante unos 10 segundos, pasados los cuales si no hemos escrito el nombre de uno de los SOs, cargará por defecto linux.
Si antes del tiempo, pulsamos la tecla TAB, entonces aparecerán en pantalla los nombres de los SOs gestionados:

linux win95