LILO es el método de arranque más arcaico
Cuando empieza el gestor de arranque LILO, va mostrando las letras de LILO. A veces daba un error y se quedaba en alguna de las letras, de este modo servira para indentificar el problema. La interpretación de los mensajes es la siguiente:
- * (nada)
No se ha cargado nada de LILO. O LILO no está instalado o la partición en la que se encuentra el sector boot no está activa.
- * L error
La primera parte de la carga se ha efectuado pero no se puede cargar la segunda parte. Los dos dígitos de error indican el tipo de problema. Normalmente suelen indicar un fallo de dispositivos o un error en la geometría.
- * LI La primera parte de la carga puede cargar la segunda pero falla al ejecutarla. Esto puede ser debido a un error en la geometría o por mover /boot/boot.b sin correr el «map installer».
- * LIL Se ha arrancado la segunda parte del arranque, pero no se puede cargar la tabla de descriptores del mapa de ficheros. Suele estar causado por un fallo en algún dispositivo o por un error de geometría.
- * LIL? La segunda parte se ha arrancado en una dirección incorrecta. Normalmente causado por un error de geometría o por mover el fichero /boot/boot.b sin correr el «map installer».
- * LIL- La tabla de descriptores está corrupta. Normalmente causado por un error de geometría o por mover el fichero /boot/boot.b sin correr el «map installer».
- * LILO Todas las partes de LILO se han cargado satisfactoriamente.
Las principales causas para un error de geometría no son los defectos físicos ni tablas de particiones invalidas. Normalmente suelen estar causadas por ignorar el límite de los 1024 cilindros.
Configuración LiLo
El archivo de configuración lilo.conf suele estar ubicado en /etc/lilo.conf
* La clausula «boot=» especifica donde se instalara LILO
* La clausula «root=» indica cual sera la particion raiz del sistema («root=/dev/hda2»)
* Con «install=/boot/boot.b» indicamos que ese fichero contiene el sector de arranque que queremos instalar. Normalmente se trata de un enlace simbolico a cada una de las posibilidades que nos ofrece LILO:
* Mediante «delay=20» indicamos cuanto tiempo esperara LILO hasta decantarse por la opcion por defecto especificada con «default=». Este tiempo es en decimas de segundo, por lo que en nuestro caso esperaremos 2 segundos.
* Cada una de las opciones para sistemas Linux se configurara mediante «image=». Concretaremos donde reside el kernel para cada una de las imagenes.
* Mediante «prompt» indicamos nuestro deseo a ser preguntados acerca de lo que hay que hacer, es decir, se nos deja elegir e incluso añadir opciones al arranque.
* Cuando queramos acceder a otro SO diferente a Linux desde LILO, deberemos utilizar «other=». En nuestro ejemplo indicamos que si queremos arrancar FreeBSD, LILO debera acceder a /dev/hda1. Si quisieramos que convivieran mas SOs diferentes en nuestro sistema, bastara con añadir mas clausulas «other=».
Ejemplo de configuración en LILO
boot = /dev/hda # particion root
delay = 10
image = /boot/vmlinux
root = /dev/hda1
label = Linux
read-only
other = /dev/hda4
table = /dev/hda
label = dos
Manual Completo LILO
Opciones Globales
Hay muchas opciones disponibles. La siguiente descripción está tomada casi literalmente de user.tex (sólo que un poco abreviada).
backup=fichero-de-resguardoCopia el sector de arranque original al fichero fichero-de-resguardo (el cual también puede ser un dispositivo, p.ej. /dev/null) en vez de a /boot/boot.NNNN.
boot=dispositivo-de-arranqueEstablece el nombre del dispositivo (p.ej. una partición del disco rígido) que contiene el sector de arranque. Si se omite esta opción, el sector de arranque se lee y escribe del dispositivo que esté montado como raíz.
change-rulesDefine cambios a realizar en el arranque para los números de los tipos de las particiones (`oculto’). Para más detalles, vea la sección «Reglas para cambiar el tipo de las particiones» (Partition type change rules) en user.tex.
compactIntenta agrupar operaciones de lectura en sectores adyacentes en una sola operación. Esto reduce drásticamente el tiempo de carga y hace que el mapa sea mas pequeño. Se recomienda usar `compact’ cuando se arranca de un disco flexible.
default=nombreUtiliza la imagen especificada como la imagen de arranque por omisión. Si se omite `default’, se utilizará la primer imagen mencionada en el fichero de configuración.
delay=décimas-segEspecifica la cantidad de décimas de segundo que el cargador de arranque debe esperar antes de arrancar la primera imagen. Esta opción es útil en aquellos sistemas que arrancan inmediatamente desde el disco rígido después de habilitar el teclado. El cargador de arranque no esperará si se omite la opción `delay’ o si ésta se pone como 0.
disk=nombre-dispositivoDefine parámetros no estándares para el disco especificado. Véase la sección «Disk geometry» de user.tex para más información. Especialmente útil es el parámetro `bios=’. La BIOS numera sus discos como 0x80, 0x81, etc. y es imposible decidir qué disco de Linux se corresponde con qué disco de la BIOS (ya que esto depende de la configuración de la BIOS y del tipo de la BIOS) por lo que, si tiene una configuración inusual, necesitará establecer la correspondencia entre los discos de Linux y los discos de la BIOS. Por ejemplo,
disk=/dev/sda bios=0x80 disk=/dev/hda bios=0x81
diría que su disco SCSI es el primer disco de la BIOS y que su disco IDE (maestro primario) es el segundo disco de la BIOS.
disktab=fichero-tablaEspecifica el nombre de la tabla de parámetros del disco. Si se omite esta opción, el instalador del mapa busca en /etc/disktab. No se recomienda utilizar tablas de parámetros de disco.
fix-tableEsta opción permite a lilo ajustar las direcciones 3D en tablas de partición. Cada entrada en la tabla contiene una dirección 3D (sector/cabeza/cilindro) y una dirección lineal del primer y del último sector de la partición. Si una partición no está alineada con una pista y ciertos sistemas operativos (p.ej. PC/MS-DOS u OS/2) están usando el mismo disco, estos sistemas pueden cambiar la dirección 3D. Lilo puede almacenar su sector de arranque sólo en particiones donde ambos tipos de direcciones se corresponden. Lilo reajusta direcciones 3D incorrectas si se especifica la opción `fix-table’. ADVERTENCIA: Esto no garantiza que otros sistemas operativos no intenten cambiar esta dirección. También es posible que este cambio tenga otros efectos inesperados. La solución correcta es reparticionar el disco con un programa que alinee las particiones a las pistas. Además, con algunos discos (p.ej. algunos discos EIDE con traducción de direcciones habilitada), tener entradas conflictivas en la tabla de particiones puede llegar a ser inevitable.
force-backup=fichero-resguardoIgual que `backup’, pero graba sobre una copia de resguardo vieja, si ésta existe.
ignore-tableLe dice a lilo que ignore tablas de partición corruptas.
install=sector-arranqueInstala el fichero especificado como el nuevo sector de arranque. Si la opción `install’ se omite, lilo utiliza /boot/boot.b.
linearGenera direcciones de sector lineales en vez de direcciones sector/cabeza/cilindro. Las direcciones lineales se traducen en tiempo de ejecución y no dependen de la geometría del disco. Nótese que discos de arranque con la opción `linear’ pueden no ser portables, porque el servicio BIOS para determinar la geometría del disco no es confiable para discos flexibles. Si se utiliza la opción `linear’ con discos grandes, /sbin/lilo puede generar referencias a áreas del disco inaccesibles, porque las direcciones 3D de los sectores no son conocidas antes de arrancar.
lockGraba automáticamente las líneas de órdenes de arranque y las usa como valores por omisión para subsiguientes arranques. De esta forma, las opciones quedan fijas hasta que se cambien manualmente.
map=fichero-mapaEspecifica la ubicación del fichero mapa. Si la opción `map’ se omite, lilo utiliza el fichero /boot/map.
message=fichero-mensajesEspecifica un fichero con un mensaje que se muestra antes del indicador de arranque. Lilo no muestra ningún mensaje mientras espera la pulsación de la tecla de cambio a mayúsculas, Ctrl, Alt o AltGr después de imprimir «LILO «. En el mensaje, el caracter FF ([Ctrl L]) borra la pantalla. El fichero de mensajes no puede exceder de 65536 bytes. El fichero mapa se debe reconstruir cada vez que el fichero de mensajes se cambia o mueve de lugar.
nowarnDeshabilita advertencias sobre posibles peligros futuros.
optionalLa opción `optional’ para cada imagen (ver abajo) se utiliza para todas las imágenes.
password=contraseñaLa opción `password=…’ para cada imagen (ver abajo) se utiliza para todas las imágenes.
promptMuestra el indicador de arranque sin esperar la pulsación de ninguna tecla. Es imposible arrancar el sistema automáticamente si se utiliza `prompt’ y no se utiliza `timeout’.
restrictedLa opción `restricted’ para cada imagen (ver abajo) se utiliza para todas las imágenes.
serial=parametrosHabilita el control desde una linea serie. El puerto serie especificado se inicializa y el cargador de arranque espera entrada de datos desde el puerto y desde el teclado del PC. Si se envía un «break» por la línea serie, se obtiene el mismo resultado que al apretar la tecla May (o Ctrl o Alt o AltGr) en la consola. Todas las imágenes de arranque deberían estar protegidas con contraseña si el acceso por puerta serie es menos seguro que el acceso a la consola, p.ej. si la línea está conectada a un módem. Los parámetros tienen la siguiente sintaxis:
<port>[,<bps>[<parity>[<bits>]]]
<port>: el número del puerto serie, comienza en cero. 0 corresponde a COM1 (/dev/ttyS0), etc. Se pueden usar los cuatro puertos a la vez (si están presentes).
<bps>: la velocidad del puerto serie. Se puede usar una de las siguientes velocidades: 110, 150, 300, 600, 1200, 2400, 4800 y 9600 bps. Por omisión se utiliza 2400 bps.
<parity>: la paridad usada en la línea sere. El cargador de arranque no hace caso de la paridad de entrada y elimina el 8º bit. Las siguientes letras (mayúsculas o minúsculas) se utilizan para describir la paridad: `n’ para no usar paridad, `e’ para paridad par, y `o’ para paridad impar.
<bits>: la cantidad de bits por carácter. Sólo se pueden usar 7 u 8 bits. Si la paridad es `n’, se usan 8 bits por omisión. Si la paridad es `e’ u `o’, se usan 7 bits por omisión.
Si se utiliza la opción `serial’, el valor de `delay’ se eleva automáticamente a 20.
Ejemplo: serial=0,2400n8 inicializa COM1 con los parámetros por omisión.
timeout=décimas-segEstablece un límite de tiempo (en décimas de segundo) para entradas por teclado. Si no se aprieta ninguna tecla en el tiempo especificado, el sistema arranca automáticamente con la primera imagen. En forma similar, la entrada de contraseñas se cancela si el usuario deja de escribir durante mucho tiempo. El límite de tiempo por omisión es infinito.
verbose=nivelHabilita los mensajes de progreso. Mientras más grande sea el número, más mensajes serán mostrados. También se puede usar la opción -v en la línea de órdenes. El nivel máximo es 5.Además, los parámetros de configuración del núcleo
append,
ramdisk,
read-only,
read-write,
root y
vga también se pueden usar en la sección de opciones globales. Estas opciones se utilizan como valores por omisión si no se especifican en las secciones de configuracion de las imágenes individuales.
Secciones para cada imagen
Una sección para una imagen comienza con la línea
image=nombre-de-ruta
(para indicar un fichero o dispositivo que contiene la imagen de arranque de un núcleo Linux), o con la línea
other=nombre-de-ruta
para arrancar cualquier otro sistema.
En el primer caso, si se usa la línea
image para arrancar de un dispositivo, se tiene que indicar el rango de sectores a asociar usando
range=comienzo-finEn el segundo caso (arrancando otro sistema) hay tres opciones
loader=cargador-cadenaIndica que debería emplearse un cargador en cadena. Por omisión, lilo utiliza /boot/chain.b. El cargador en cadena se debe especificar si se arranca desde otro dispositivo que no sea el primer disco rígido o el primer disco flexible.
table=dispositivoIndica el dispositivo que contiene la tabla de particiones. El cargador de arranque no le va a enviar información de partición al sistema operativo si se omite esta variable. (Algunos sistemas operativos tienen otra forma de determinar de qué partición han sido arrancados. P.ej., MS-DOS generalmente guarda la geometría del disco de arranque o partición en su sector de arranque.) Nótese que se debe ejecutar /sbin/lilo cada vez que se modifica una tabla de partición referenciada con la opción `table’.
unsafeIndica que lilo no debe acceder al sector de arranque cuando cree el mapa. Esta opción deshabilita algunas comprobaciones, incluyendo la de la tabla de particiones. Si el sector de arranque está en disco flexible de formato fijo, el uso de `unsafe’ evita la necesidad de poner un disco legible en la unidad cuando se ejecuta el instalador del mapa. `unsafe’ y `table’ son incompatibles.En ambos casos se pueden usar las siguientes opciones.
label=nombreEl cargador de arranque utiliza el nombre principal del fichero (sin la ruta de acceso) de cada especificación de imagen para identificar dicha imagen. Se puede usar un nombre diferente mediante la variable `label’.
alias=nombreDefine un segundo nombre (o alias) para la misma imagen.
lock(Véase la discusión de más arriba.)
optionalOmitir la imagen si no esta disponible cuando se cree el mapa. Esta opción es útil para especificar núcleos de prueba que no están siempre presentes.
password=contraseñaProtege la imagen con una contraseña.
restrictedSólo se necesita contraseña para arrancar la imagen si se especifican parámetros en la línea de órdenes (p.ej., single).
Opciones del núcleo
Si la imagen a arrancar es un núcleo Linux, entonces se pueden pasar parámetros de línea de órdenes a este núcleo.
append=cadenaAgrega las opciones especificadas a la línea de parámetros pasada al núcleo. Se suele usar para especificar parámetros del equipo que no pueden ser detectados automáticamente o porque pueden ser peligrosos de sondear. Por ejemplo:
append = "hd=64,32,202"
literal=stringIgual que `append’, pero elimina todas las otras opciones (p.ej., la ubicación del dispositivo raíz). Debido a que se pueden eliminar sin querer opciones vitales con `literal’, esta opción no se puede poner en la sección de opciones globales.
ramdisk=tamañoEspecifica el tamaño del disco RAM opcional. Cero se utiliza para no crear un disco RAM. Si se omite esta variable, el sistema utiliza el tamaño configurado en la imagen de arranque.
read-onlyIndica que el sistema de ficheros raíz debe ser montado de lectura exclusiva. En general, el proceso de comienzo del sistema re-monta el sistema de ficheros raíz para lectura-escritura (p.ej. después de hacer la comprobación).
read-writeEspecifica que el sistema de ficheros raíz debe ser montado para lectura-escritura.
root=dispositivo-raízEspecifica el dispositivo que debe ser montado como raíz. Si se utiliza el nombre especial
current, lilo utiliza el dispositivo que actualmente esté montado como raíz. Si la raíz se ha modificado con -r, lilo utiliza el dispositivo respectivo. Si se omite la variable `root’, lilo utiliza el dispositivo raíz configurado en la imagen del núcleo. (El cual se establece cuando se compila el núcleo usando la variable ROOT_DEV en el Makefile del núcleo, y también se puede cambiar con el programa rdev(8).)
vga=modoEsta opción especifica el modo de texto VGA que debe usarse al arrancar el sistema. Se reconocen los siguientes valores (no importa si las letras con mayúsculas o minúsculas):
normal: selecciona el modo de texto normal 80×25.
extended (o
ext): selecciona el modo de texto 80×50.
ask: se para y le pregunta al usuario (al arrancar el sistema).
<número>: usa el modo de texto correspondiente al número. Para obtener una lista de modos disponibles, arranque con ‘vga=ask’ y pulse [Intro].
Si se omite esta variable, lilo utiliza el modo VGA configurado en la imagen del núcleo. (El cual se establece cuando se compila el núcleo con la variable SVGA_MODE en el Makefile del núcleo. Ese valor se puede cambiar más adelante con el programa rdev(8).)