LILO, literalmente, el cargador de linux (LInux LOader) es un gestor de arranque muy vers�til que permite iniciar un sistema operativo (SO) cargando el sector de arranque de una partici�n del disco duro (o de un disquete).
Esto lo pueden hacer otros gestores de botado, pero s�lo LILO puede cargar el kernel de linux y arrancar linux presentando adem�s la posibilidad de pasar par�metros al kernel mediante l�neas de comando.
LILO tiene una serie de componentes que se cargan de manera secuencial. En primer lugar, se carga la primera parte (el comienzo del c�digo) del cargador en el sector de arranque. Cuando este primer tramo del cargador se ha iniciado, aparece una "L" en el monitor. Entonces, el resto (la mayor parte del c�digo) del cargador (que junto con la primera parte del c�digo se encuentra en el fichero /boot/boot.b) procede a iniciarse. Justo antes de que se cargue este segundo tramo de c�digo, se presenta "I" en la pantalla. Si todo ha ido bien, despu�s de haberse cargado, la siguiente letra de LILO, "L", aparecer� en la pantalla. Despu�s de esto, se produce la carga de la tabla de descriptores a partir del fichero /boot.map, donde se establecer�n las ubicaciones de los posibles kernels de linux as� como los sectores de arranque correspondientes a otros SOs que tambi�n gestione LILO. Por �ltimo, se carga el SO seleccionado, que en principio ser� el kernel de linux. Si todo ha funcionado sin problemas, aparecer� una "O" en el monitor y se habr� escrito en la pantalla la palabra LILO.
Si hubieren problemas en el proceso de arranque la presencia o ausencia de las letras de LILO junto con algunos otros mensajes ser�n claves para diagnosticar la causa del fallo.
Dependiendo de las necesidades que tengamos, podremos instalar LILO:
/dev/fd0)
/dev/hda1, p.ej. para (E)IDE � /dev/sda1 p.ej. para SCSI)
/dev/hda, p.ej. para (E)IDE � /dev/sda p.ej. para SCSI)La opci�n de instalar LILO en un disquete ("de arranque") es el procedimiento m�s seguro, pero tambi�n el m�s lento de cargar linux en nuestra m�quina.
Si solamente tenemos linux en nuestro ordenador, la opci�n id�nea ser�a instalar LILO en el MBR del primer disco duro. Si vamos a disponer de otros SOs coexistiendo en nuestra m�quina (MS-DOS, Windows), tambi�n podemos escoger la instalaci�n de LILO en el MBR, y gestionar con �l la carga de los SOs. Pero con esto hay que tener ciertas precauciones.
Si ya tenemos un SO en una partici�n, p. ej. Windows 95, cuando instalemos LILO en el MBR, sobreescribiremos dicho sector y ya no podremos arrancar Windows 95, si no lo gestiona el propio LILO. Si tenemos linux instalado con LILO en el MBR y despu�s instalamos p. ej., Windows 95, se borrar� LILO del MBR y no podremos arrancar linux. En tal caso, para poder usar LILO como gestor com�n, habr�a que cargar linux con un disquete de arranque y reinstalar, desde linux LILO en el MBR. Por lo tanto, si vamos a meter varios SOs en nuestra m�quina, es mejor instalar primero los otros y luego linux, usando despu�s LILO como gestor de arranque de todos los SOs.
Si nos planteamos iniciar los diversos SOs, inclu�do linux desde otro gestor de arranque, como por ejemplo el moderno BootMagic del PartitionMagic 4.0 (Englobado ya en El Caldera OpenLinux 2.2), la mejor opci�n ser�a escribir LILO en el sector de arranque de la partici�n linux nativa correspondiente. En tal caso, cuando instalemos linux, deberemos marcar dicha partici�n ra�z como activa (usando el comando "a" de fdisk o el "b" de cfdisk).
Excepto en el caso de que LILO sea el gestor de otros SOs, ser� el BIOS u otro cargador el responsable de ejecutar el sector de arranque de la partici�n. El BIOS (Basic Input Output System) cuando encendemos el ordenador, lleva a cabo el POST (Power-On Self Test) para comprobar los par�metros de la configuraci�n de hardware que se encuentran permanentemente salvados en el chip CMOS (Complementary Metal Oxyde Semiconductor) RAM (continuamente alimentado por una bater�a aunque el ordenador se apague): memoria instalada, disqueteras, discos duros, cd-roms,...
Despues del test, BIOS muestra en la pantalla los valores de los par�metros de hardware y procede a arrancar el SO. En el caso de un disco duro toma el MBR del disco primario y de �l se cargar� el programa gestor de arranque. Anta�o, el MBR conten�a el sistema de arranque del �nico sistema operativo instalado. Hoy d�a como es posible cargar m�s de un SO, para arrancar, hace falta un gestor de arranque m�ltiple, como por ejemplo LILO. Por lo tanto, LILO est� limitado por las opciones del BIOS. Adem�s, LILO depende del BIOS para cargar los ficheros /boot/boot.b; /boot.map; los diversos kernels; los sectores de arranque de los otros Sos y el mensaje de arranque de LILO si se ha definido.
Las restricciones m�s importantes que afectan LILO eran en el caso de BIOS antiguos la limitaci�n a los dos primeros discos duros y la imposibilidad de acceder m�s all� de 1024 cilindros por disco, lo cual se vulneraba en cuanto el disco duro superaba los 504 Mbytes, por lo que conven�a tener la partici�n ra�z que contuviera los kernels en las primeras posiciones de la tabla. Los BIOS de las modernas placas base ya soportan hasta cuatro dispositivos (discos duros o cdroms). As�, cuando la partici�n de arranque de linux se encuentra en el segundo, tercero o cuarto disco duro, LILO imprime un mensaje de precauci�n pero contin�a. El l�mite de los 1024 cilindros no ha cambiado con los nuevos BIOS, pero los controladores de disco con soporte de LBA (Logical Block Address)o LARGE(IDEs con m�s de 1024 cilindros, la mayor�a de EIDEs y todos los SCSI) pueden "traducir" o "remapear" la geometr�a del disco en otra equivalente de manera que parezca que el sistema tiene menos de los 1024 cilindros y se puedan gestionar hasta casi 8 Gbytes. Si la informaci�n acerca de la geometr�a del disco que hay en el men� del BIOS (remapeada con p.ej. LBA) no es la misma (en cuanto a cilindros/cabezas/sectores) que la que nos da fdisk, entonces se producir� un problema de "geometry mismatch" (no equivalencia de geometr�a) y LILO abortar� el arranque a menos que se utilice la opci�n "linear" en la configuraci�n de LILO.
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.confEscribiendo /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:
Seccion 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.Seccion 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.Seccion 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/lilocon 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
Hay razones para desear desinstalar LILO. Una, desinstalar el sistema linux de nuestra m�quina. Otra imperativa: porque algo va mal. LILO es un programa que, mal manejado, puede hacer al sistema no arrancable si se instala en el MBR. Mal configurado, impedir� el acceso al cualquier SO. En tales casos es indispensable disponer de disquetes de arranque para dichos SO. Por lo tanto es conveniente hacer el disco de arranque de Windows y el de arranque de linux (en el momento adecuado de la instalaci�n del sistema) de manera que nos permita acceder via disquetera al sistema correspondiente en caso de imposibilidad de arrancar. N�tese que en el BIOS el arranque deber� comenzar por defecto en la disquetera A:.
Una vez que hemos arrancado el SO, hay muchas maneras de desinstalar LILO del MBR. Si nos encontramos en DOS o Windows, basta con ejecutar el comando MS-DOS
FDISK /MBR (� SYS C: si C: es el disco duro en cuyo MBR se instal� LILO)si estamos en OS/2
FDISK /NEWMBRque escriben los primeros 446 bytes (el c�digo de arranque) en el MBR y dejando las particiones ilesas.
si estamos en linux, basta con hacer
/sbin/lilo -upara restaurar el MBR anterior a la instalaci�n de LILO
Adem�s de todo esto puede hacerse otra cosa: Cuando LILO sobreescribe el MBR, salva una copia de backup en /boot/boot.xxxx, donde xxxx es un n�mero m�gico del dispositivo donde se ha instalado. Veamos algunos ejemplos
Disco /dev/zzz xxxx IDE primario /dev/hda 0300 SCSI primario /dev/sda 0800 floppy /dev/fd0 0200as�, si queremos desinstalar LILO del sector de arranque de alguno de estos dispositivos, bastar� con hacer:
dd if=/boot/boot.xxxx of=/dev/zzz bs=446 count=1Si LILO se ha instalado en una partici�n ra�z, no har� no arrancable ning�n otro sistema operativo. �nicamente, si est� mal instalado, har� que no arranque linux. Si deseamos restaurar el sector de arranque de la partici�n /dev/yyyy (p.ej. /dev/hda1) podemos reescribir el sector de botado haciendo:
dd if=/dev/yyyy of=New-file bs=512 count=1 dd if=Backup-Date of=/dev/yyyysi lo que queremos es desinstalar linux, borraremos la partici�n root con fdisk.
Cuando LILO se inicia, si todo ha ido bien, presenta en la pantalla las cuatro letras "LILO". Como ya vimos, cada letra correspond�a a una acci�n. Si LILO no ha funcionado, las letras que presente en pantalla junto con ciertos mensajes, ser�n la clave para saber donde est� el problema. Veamos los m�s comunes:
/boot/boot.b sin reinstalar LILO (/sbin/lilo).
/boot/boot.b sin reinstalar LILO (/sbin/lilo).
La mayor parte de las veces, no se trata de un problema f�sico del dispositivo de botado, sino errores debidos a la no equivalencia entre la geometr�a del disco que fdisk presenta y que el BIOS ha remapeado. En tal caso el uso del par�metro "linear" en /etc/lilo.conf puede funcionar. Otras veces puede deberse a que se ha intentado instalar LILO en una partici�n l�gica. Y otras veces a causas m�s sutiles. Por ejemplo: Yo arranco linux junto a otros sistemas operativos con el gestor de arranque de Partition Magic y tengo LILO en una partici�n ra�z. Una vez hice un "resize" y cambi� el tama�o de mi partici�n linux nativa porque necesitaba espacio para instalar nuevos programas. Al terminar e intentar arrancar linux de su partici�n, apareci� en la pantalla "LI". Eso se debi� a que despu�s de haber hecho el cambio de tama�o, hab�a movido /boot/boot.b y no hab�a lanzado el map installer /sbin/lilo. Cog� mi disquete de arranque de linux, y cuando entr� ejecut� la orden y reinici� el sistema. Todo funcion�.