PARTES Y EJECUION DE lilo/LILO
Hay que tener muy clara la diferencia entre el proceso de instalacion de LILO (que
involucra el "instalador" /sbin/lilo y el archivo de
configuracion /etc/lilo.conf/) y el de ejecucion del "bootmanager" LILO
propiamente dicho.
PARTES NECESARIAS EN LA INSTALACION DE LILO
LILO se instala desde un sistema de archivos Linux y con un usuario root. Las partes
involucradas en este proceso son, por tanto, archivos,
siendo los necesarios:
1.El ejecutable instalador lilo normalmente ubicado en /sbin
2.El archivo de configuracion. Las versiones modernas asumen por defecto /etc/lilo.conf,
pero puede usarse otro si usamos la
opcion -C ruta_y_nombre_del_archivo.
Las opciones adicionales que se pasen a /sbin/lilo desde la linea de comandos tienen
preferencia sobre las especificadas en el
archivo de configuracion.
3.El archivo que contiene el codigo de arranque. Por defecto es /boot/boot.b. Si se quiere
usar otro o esta en otra ruta hay dos
formas de explicitarlo al instalador /sbin/lilo:
Mediante la entrada en el lilo.conf install=ruta_y_nombre_del_archivo
Mediante la opcion -i de /sbin/lilo
4.Si vamos a utilizar LILO tambien para poder iniciar algun "bootsector" sera
tambien necesario:
1.El "chain loader" que es el codigo que permite saltar a un
"bootsector" localizable por la BIOS. Por defecto se asume que esta en
/boot/chain.b. Puede utilizarse otro si en la seccion correspondiente a ese
"bootsector" o SO del lilo.conf a usar se
explicita con:
loader=ruta_y_nombre_del_chain_loader
2.Si nuestra version de lilo es la 0.19 o anterior y queremos tener la posibilidad de
arrancar un "bootsector" de DOS de un disco
que no sea el primero, ademas necesitaremos un "chain loader" especial para
estas situaciones, el /boot/any_d.b. Si la
version de lilo es la 0.20 solo hace falta el chain.b (Pero hay que escribir algo mas en
el lilo.conf)
PARTES INVOLUCRADAS EN LA EJECUCION DE LILO
Si la instalacion de LILO fue satisfactoria, la primera instancia de LILO se habra copiado
al sector de arranque de la particion especificada con la
opcion -b o con la entrada del archivo de configuracion empleado:
boot=/dev/lo_que_sea
Normalmente el destino de esa primera instancia sera:
La MBR del primer disco: boot=/dev/hda
La particion nativa de Linux o la extendida: boot=/dev/hda3 (por ejemplo)
El sector de arranque de un disquete: boot=/dev/fd0
Ademas el instalador lilo genera un "map file" o archivo que contiene la
localizacion absoluta en sectores de los "kernels" de Linux y
"bootsectors" correspondientes a las distintas opciones del menu de LILO.
Por defecto, este es colocado en /boot/map. Si se quiere colocarlo en cualquier otro sitio
y con cualquier nombre puede especificarse con la
opcion -m de lilo o con la entrada del archivo de config:
map=ruta_y_nombre_del_map_file
La primera instancia de LILO tiene guardada la posicion absoluta en el disco (que puede
ser cualquiera!) de la segunda instancia, contenida en
el boot.b (o en el especificado con install= o con -i), y la del "map file", con
el resto de las localizaciones. Es decir, la ubicacion fisica de
boot.b, chain.b, y los "kernels" y "bootsectors" debe ser la misma que
los especificados en el proceso de instalacion. Si no ocurre
esto, cuando arranque LILO lo hara a medias, colgandose y presentando solo alguna de sus
letras Por ejemplo: LI o LIL-. (En el README de lilo
viene detallada el significado de cada posibilida).
No hay que olvidar, que estos procesos de localizacion, LILO utiliza la BIOS, por lo que
pueden darse los conocidos problemas con discos
grandes si la BIOS es vieja o no esta adecuadamente configurada.
Para estos casos viene muy bien crear un disco de arranque que contenga LILO, boot.b,
chain.b, el "map file" y una copia del "kernel"
(o de los "kernels"). Asi podremos arrancar sin problemas el "kernel"
y nuestro sistema linux DEL DISCO DURO. Por supuesto, una solucion
mas elegante, consiste en alojar en una posicion por debajo del cilindro 1024 de un disco
accesible por nuestra BIOS una pequeña particion
primaria de Linux con el "kernel" y el directorio /boot (con al menos boot.b,
chain.b y el "map file"). De todas formas, con las BIOS
actuales no deberiamos tener ningun problema de este tipo, y estas ultimas medidas son
innecesarias.
NOTAS
1.Siempre que se ejecute el instalador /sbin/lilo conviene hacerlo con la opcion -v para
que nos de algo de informacion sobre el
proceso de instalacion. (Si se pone -v -v -v nos dara el maximo de informacion)
2.Un punto interesante a tener en cuenta es que si hemos arrancado con un disco de rescate
o con el de instalacion de la distribucion y,
posteriormente hemos montado la particion root bajo /mnt (por ejemplo) y pretendemos
reinstalar LILO con la configuracion y archivos
del disco duro, entonces, las rutas por defecto no funcionaran (o no del modo deseado) al
ser ahora / el disquete.
Desde luego esto se soluciona especificando manualmente las rutas correctas con:
lilo -C /mnt/etc/lilo.conf -i /mnt/boot/boot.b -m /mnt/boot/map
Pero es mas practico la opcion equivalente:
lilo -r /mnt