|
|
|
Listar FAQs
Preguntas
Respuestas
Q: ¿Qué es LILO y para qué sirve?
A: 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.
Q: ¿Dónde se instala LILO?
A: Dependiendo de las necesidades que tengamos, podremos instalar LILO:
* En el sector de arranque de un disquete (floppy) (/dev/fd0)
* En el sector de arranque (superbloque) de una partición raÃz de linux (primaria o extendida) (/dev/hda1, p.ej. para (E)IDE ó /dev/sda1 p.ej. para SCSI)
* En el MBR (Master Boot Record) o Sector Maestro de Arranque (primer sector) del primer disco duro (/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).
Q: ¿Qué limitaciones impone el BIOS a LILO?
A: 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.
Q: ¿Cómo se configura e instala LILO?
A: 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:
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/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
Q: ¿Cómo desinstalo LILO?
A: 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 /NEWMBR
que 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 -u
para 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 0200
asÃ, 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=1
Si 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/yyyy
si lo que queremos es desinstalar linux, borraremos la partición root con fdisk.
Q: LILO no funciona bien. Diagnóstico de errores.
A: 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:
* "L" error: El primer tramo del código ha sido cargado pero no el segundo. Esto se debe generalmente a un error fÃsico en el sector de botado o a un problema de geometrÃa del disco.
* "LI":El segundo tramo del código ha sido invocado, pero no ha podido iniciarse. Esto sucede cuando hay un error de geometrÃa de disco o se ha movido /boot/boot.b sin reinstalar LILO (/sbin/lilo).
* "LIL":El segundo tramo del código se ha iniciado pero no puede ubicar los datos que necesita en el fichero de mapeado. Esto puede deberse a un error fÃsico del dispositivo de arranque o a un problema en la geometrÃa del disco.
* "LIL?":El segundo tramo del código se ha cargado en una dirección de memoria equivocada. Esto se debe a un error en la geometrÃa del disco o cuando se ha movido /boot/boot.b sin reinstalar LILO (/sbin/lilo).
* "LIL-":Los datos en el fichero de mapeado no son válidos. Las causas son las mismas que en el caso anterior.
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ó.
Q: ¿Cómo utilizar LoadLin para el arranque de Linux?
A: A veces ciertos programas o "sistemas operativos" están diseñados para modificar el Master Boot Record (MBR) del ordenador sin tener en cuenta los contenidos actuales del mismo, lo que suele redundar en la eliminación de LILO y la imposibilidad del usuario de entrar en Linux. Para solucionar estos problemas, o por si simplemente deseamos entrar en Linux desde msdos, está disponible el programa LOADLIN.
Loadlin es un programa de MSDOS que podemos encontrar en el directorio dosutils de los CDs de Linux (en la propia distribución). Este programa permite arrancar Linux desde MSDOS a partir de él mismo, un fichero kernel de Linux (como vmlinuz, bzImage o zImage) y una partición Linux. Mediante él podemos hacernos un disco de seguridad para arrancar Linux cuando LILO sea borrado por otros S.O.:
Creamos un directorio a:\loadlin y copiamos alli el ejecutable Loadlin.exe. Copiamos también cualquier núcleo de linux que tengamos disponible (por ejemplo \vmlinuz o \boot\bzImage) al mismo diskette.
Cuando necesitemos arrancar desde el diskette, arrancamos en msdos y ejecutamos lo siguiente:
Formato de uso:
loadlin kernel root=particion
En nuestro caso:
a:
loadlin bzImage root=/dev/hda4
(cambiando cada cosa por su nombre correcto de fichero de kernel y partición donde tengamos instalado Linux). Esto lo podemos escribir en el mismo diskette en un fichero linux.bat, por ejemplo. Tras ejecutarlo, Linux arrancará normalmente con dicho kernel y con los datos de la partición indicada, lo cual permite restaurar el MBR original (con LILO) ejecutando de nuevo LILO (mediante /sbin/lilo, o /sbin/lilo -v).
1 comentario
|
|