IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

El Linux Loader o LILO és un gestor d'arrancada o bootloader utilitzat durant fa molts anys en sistemes Linux.

LILO normalment s'instal·la al master boot record (MBR) del disc dur. El MBR és el lloc del disc dur on la BIOS busca el programa per arrancar el sistema operatiu (en aquest cas LILO). LILO, com altres gestors com GRUB també es pot instal·lar en el primer sector d'una partició en comptes del MBR, per exemple quan ja hi ha un altre gestor d'arrancada al MBR i volem poder accedir a LILO des de aquest gestor d'arrancada.

LILO no depèn de cap sistema de fitxers especific. LILO permet oferir un menú amb diverses opcions d'arrancada, i permet així disposar d'un ordinador des del qual es puguin executar diversos sistemes operatius (sovint anomenats sistemes duals). En cada opció de menú es poden configurar diferents paràmetres com el dispositiu d'arrancada, o el path per trobar el nucli del sistema operatiu o paràmetres del nucli.

Normalment la funció d'un gestor d'arrancada és executar kernel de Linux. Des de LILO es poden passar paràmetres al kernel.

Quan el sistema s'inicia, només els drivers de la BIOS estan disponibles per tal d'accedir al disc dur. Per aquesta raó en BIOS antigues és possible que només siguin accessibles els primers 1024 cilindres del disc dur dels dos primers discs. Per BIOS més modernes amb suport Logical block addressing (LBA) tot el disc dur és accessible.

LILO va ser durant un anys (després de l'ús de loadlin) el gestor d'arrancada més utilitzat. Actualment (--acacha 09:37, 26 ago 2009 (UTC)), la majoria de distribucions utilitzen GRUB com a gestor d'arrancada per defecte.

Instal·lar LILO

Sistemes de la família Debian

$ sudo apt-get install lilo
Lilo.png

Fixeu-vos en els warnings del final de la instal·lació!:

Lilo1.png

Ara executeu:

$ sudo liloconfig

Si us dona un error com el següent:

Lilo2.png

Es per que LILO no suporta els UUID. Feu una copia del vostre fitxers fstab:

$ sudo cp /etc/fstab /etc/fstab.old

I editeu el fitxer per eliminar els UUID i canviar-los per la notació de sempre de les unitats de disc dur (per exemple /dev/sda1). Fixeu-vos que els comentaris us poden ajudar a saber el que cal posar. Canvieu:

# / was on /dev/sda1 during installation
UUID=8b669217-d286-4a45-be7e-69c5f0f29090 /               ext3    relatime,errors=remount-ro 0       1

Per

# / era UUID=8b669217-d286-4a45-be7e-69c5f0f29090
/dev/sda1 /               ext3    relatime,errors=remount-ro 0       1

Si cal, feu el mateix amb la partició swap. Torneu a executar liloconfig:

$ sudo liloconfig

I contesteu a les preguntes de la següent manera:

Lilo3.png
Lilo4.png
Lilo5.png

Ara heu d'escollir si voleu canviar GRUB per LILO, sobreescrivint el MBR amb LILO, o si en canvi voleu mantenir GRUB.

Lilo6.png

Ara heu d'escollir si voleu que es carregi automàticament Linux.

Lilo7.png

Fixeu-vos en els missatges finals:

Lilo8.png

Abans calia executar la comanda:

$ sudo lilo

Després de la configuració, però en aquest cas el assistent de la configuració del paquet ho ha fet per vosaltres. Cal tenir en compte que sudo lilo sense més opcions no instal·la el lilo al MBR i per tant no sobrescriurem GRUB. Per instal·lar LILO al MBR cal executar:

$ sudo /sbin/lilo -M /dev/sda1 mbr

Instal·lar LILO i GRUB junts

Per tenir els dos instal·ladors només cal que un estigui al MBR i l'altre al primer sector de la partició. Seguiu els passos de l' apartat anterior i en l'apartat que us demana si voleu escriure LILO al MBR dieu no. Així mantindreu GRUB.

Falta però que li dieu a a GRUB que executi LILO. Per això podem afegir una opció més als menús de GRUB. La opció és molt similar quan s'afegeix una entra per executar altres sistemes operatius com Window$:

title         LILO
root          (hd0,0)
makeactive
chainloader   +1

De fet podeu buscar l'exemple comentat següent:

# examples
#
# title         Windows 95/98/NT/2000
# root          (hd0,0)
# makeactive
# chainloader   +1

I adaptar-lo a les vostres necessitats. Consulteu l'article sobre GRUB.

En el cas que vulgueu posar una opció que us permeti tornar a carregar el grub des de LILO podeu afegir al fitxer /etc/lilo.conf, les següents línies:

other=/dev/sda
 label="Tornar a GRUB"
NOTA: Observeu que si no indiqueu el número de partició (sda1) aleshores esteu indicant que voleu executar el MBR.

I enrecordeu-vos d'executar lilo:

$ sudo lilo

Added Lin_2.6.28img0 *

Added Memory_Test+
Added Tornar_a_GRUB

Recursos:

Paquet lilo

Ordre lilo

La comanda lilo, en sistemes de la família Debian, la proporciona el paquet del mateix nom, tal i com podeu veure si executeu:

$  which lilo

/sbin/lilo

$ dpkg -S /sbin/lilo
lilo: /sbin/lilo

Consulteu l'apartat:

Instal·lar LILO

Per tal de veure un exemple de com utilitzar aquesta comanda.

Aquesta comanda s'ha d'executar cada cop que volguem aplicar els canvi fets als fitxers de configuració.

Per a més informació podeu consultar el manual de la comanda amb:

$ man lilo

O online a:

Taula de paràmetres de la comanda Linux (TODO):

                     Enables map compaction so that read requests from

-c

                     adjacent sectors are combined into one.
                     Uses a different configuration file instead of the standard

-C <config file>

                     /etc/lilo.conf.
                     Specifies the amount of time in tenths of seconds to wait

-d <delay>

                     before booting the default kernel image.
                     Uses the specified kernel label as the default image.

-D <label>

                     Uses a different disk-tab file instead of the default

-f <disk-tab file>

                     /etc/disktab.
                     Uses a different boot loader file instead of the default

-i <boot loader file>

                     /boot/boot.b.
                     Prints the kernel image path for the requested label.

-I <label>

                     Generates linear addresses instead of

-l

                     sector/head/cylinder addresses.
                     Generates 32-bit LBA addresses, so that a drive with more

-L

                     than 1024 cylinders can be accessed.
                     Uses the specified map file, instead of /boot/map.

-m <map file>

                     Tells LILO whether to fix or ignore corrupt partition table

-P {fix|ignore}

                     information.
                   Prints information contained in the map file telling which

-q

                   images LILO will boot, as well as other information from
                   lilo.conf.
                   Changes the perceived root when installing LILO in a

-r <root directory>

                   troubleshooting situation.
                   Specifies a command to run the next time the boot loader

-R <command line>

                   is executed, after which the command is erased. Used
                   with reboot scripts.
                   Saves the existing boot sector to the specified filename.

-s <save file>

                   Saves the existing boot sector to the specified filename,

-S <save file>

                   and overwrites an existing file if it exists.
                   Enables test mode. Use with the -v parameter to display

-t

                   what LILO would do if installed.
                   Prints out system information for the requested option.

-T <option>

                   See the lilo man page for a list of the options.
                   Uninstalls LILO from the specified device.

-u <device name>

                   Uninstalls LILO from the specified device, but does not

-U <device name>

                   perform a time stamp check.
                   Increases the verbosity of information displayed. Up to five

-v

                   -v parameters can be added to further increase the
                   amount of information displayed.
                   Displays the LILO version number.

-V

Comanda liloconfig

S'encarrega de generar el fitxer de configuració lilo.conf. Consulteu l'apartat:

#Instal.C2.B7lar_LILO

Per tal de veure un exemple de com utilitzar aquesta comanda.

Altres comandes

Segons els fitxers instal·lats pel paquet, disposem de lse següents comandes extres:

$ dpkg -L lilo | grep bin
/sbin
/sbin/lilo.real
/sbin/lilo
/sbin/activate
/usr/sbin
/usr/sbin/mkrescue
/usr/sbin/keytab-lilo
/usr/sbin/liloconfig
/usr/sbin/lilo_find_mbr
/usr/sbin/update-lilo

Configuració de LILO

El fitxer de configuració de lilo és:

/etc/lilo.conf. 

Lo normal és partir d'una plantilla d'aquest fitxer o utilitzar la comanda liloconfig per crear aquest fitxer.

MOLT IMPORTANT: els canvis fet a aquests fitxer no s'apliquen automàticament. És necessari executar la comanda lilo si volem aplicar els canvis.

El següent és un exemple de fitxer lilo.conf generat per la comanda liloconfig:

$ sudo cat /etc/lilo.conf 
# Generated by liloconfig

# This allows booting from any partition on disks with more than 1024
# cylinders.
Discs_durs#CHS_vs_LBA lba32

# Specifies the boot device
boot=/dev/sda1

# Specifies the device that should be mounted as root.
# If the special name CURRENT is used, the root device is set to the
# device on which the root file system is currently mounted. If the root
# has been changed with  -r , the respective device is used. If the
# variable ROOT is omitted, the root device setting contained in the
# kernel image is used. It can be changed with the rdev program.
root=/dev/sda1 

# Bitmap configuration for /boot/coffee.bmp
bitmap=/boot/coffee.bmp
bmp-colors=12,,11,15,,8
bmp-table=385p,100p,1,10
bmp-timer=38,2,13,1  

# Enables map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the map
# smaller. Using COMPACT is especially recommended when booting from a
# floppy disk.
# compact

# Install the specified file as the new boot sector.
# LILO supports built in boot sectory, you only need
# to specify the type, choose one from 'text', 'menu' or 'bitmap'.
# new: install=bmp      old: install=/boot/boot-bmp.b
# new: install=text     old: install=/boot/boot-text.b
# new: install=menu     old: install=/boot/boot-menu.b or boot.b
# default: 'menu' is default, unless you have a bitmap= line
# Note: install=bmp must be used to see the bitmap menu.
# install=menu
install=bmp 
# delay=20

# Prompt to use certaing image. If prompt is specified without timeout,
# boot will not take place unless you hit RETURN
prompt
timeout=50 

# Enable large memory mode.
large-memory 

# Specifies the location of the map file. If MAP is
# omitted, a file /boot/map is used.
map=/boot/map

# Specifies the VGA text mode that should be selected when
# booting. The following values are recognized (case is ignored):
#   NORMAL  select normal 80x25 text mode.
#   EXTENDED  select 80x50 text mode. The word EXTENDED can be
#     abbreviated to EXT.
#   ASK  stop and ask for user input (at boot time).
#   <number>  use the corresponding text mode. A list of available modes
#     can be obtained by booting with  vga=ask  and pressing [Enter].
vga=normal

# Defines non-standard parameters for the specified disk.
#disk=/dev/sda
#	bios=0x80 

# If you are using removable USB drivers (with mass-storage)
# you will need to tell LILO to not use these devices even
# if defined in /etc/fstab and referenced in /proc/partitions.
# Adjust these lines to your devices:
#
# disk=/dev/sda inaccessible
# disk=/dev/sdb inaccessible  

# These images were automagically added. You may need to edit something.  

image=/boot/vmlinuz-2.6.28-11-generic 
	label="Lin 2.6.28img0"
	initrd=/boot/initrd.img-2.6.28-11-generic
	read-only

image=/boot/memtest86+.bin
	label="Memory Test+"

read-only

# If you have another OS on this machine (say DOS),
# you can boot if by uncommenting the following lines
# (Of course, change /dev/hda2 to wherever your DOS partition is.)
# other=/dev/hda2
#   label="MS Windows"

La majoria són opcions per defecte o opcions que configuren qüestions com l'aspecte de LILO. El més important és el bloc:

 image=/boot/vmlinuz-2.6.28-11-generic 
	label="Lin 2.6.28img0"
	initrd=/boot/initrd.img-2.6.28-11-generic
	read-only

image=/boot/memtest86+.bin
	label="Memory Test+"

read-only

Aquestes són les opcions que apareixeran al menu. De forma similar a GRUB el més important és indicar on està el kernel de Linux que volem executar i el fitxer initrd, o en el segon cas, el test de memòria RAM. La opció label és el text que apareixerà al menú.

Fixeu-vos que al final us posa un exemple de com executar un altre gestor d'arrancada des de GRUB:

other=/dev/hda2
   label="MS Windows"

En aquest cas un Windows.

Per a més informació podeu consultar el manual amb:

$ man lilo.conf

o online a:

Entrades de lilo.conf

                          Copies the original boot sector to the specified backup

backup=<filename>

                          file.
                          Specifies the name of the disk device or partition that

boot=<boot device>

                          the new boot record is written to. If this entry is
                          omitted, the new boot sector will be written to the
                          current root partition.
                          Specifies boot-time changes to the partition type

change-rules

                          numbers. See the lilo.conf man page for more
                          information.
                          Causes LILO to try to merge read requests for adjacent

compact

                          disk sectors into a single request. This can greatly
                          speed up booting from a floppy disk.
                          Defines the default boot image to use. If this is

default=<name>

                          omitted, the first boot entry listed will be used as the
                          default.
                          Causes LILO to wait the specified number of tenths of

delay=<tenth of seconds>

                          seconds before booting the default image.
                          Lets you specify nonstandard parameters for the

disk=<device name>

                          specified disk.
                          Specifies the location of the disk parameter file. This

disktab=<disktab file>

                          file was once used to hold disk geometry information.
                          The use of disk tabs is now discouraged.
                          Lets LILO adjust the sector/head/cylinder relationship

fix-table

                          to the linear addresses on the disk drive. This is
                          sometimes used with other operating systems that do
                          not convert the information the same way as LILO.
                          Has the same function as the backup entry, but

force-backup=<backup file>

                          overwrites an existing file if it exists.
                          Instructs LILO to ignore corrupt partition table

ignore-table

                          information.
                          Tells LILO which boot loader to install, either the text

install=<boot loader>

                          mode or the menu mode.
                          Generates 32-bit logical block addresses instead of

lba32

                          sector/head/cylinder addresses. This allows booting
                          from disks with more than 1024 cylinders.


Paràmetres del kernel

TODO


                   Sets the initial command to be run by the kernel. By default this
init=
                   is init.
                   Sets the NFS boot address, which is used for network booting.
nfsaddrs=
                   Sets the NFS root name, which is used for network booting.
nfsroot=
                   Disables the use of the math coprocessor on the CPU. Math
no387
                   Coprocessor Emulation must be enabled in the kernel for this
                   to work.
                   Instructs Linux to not use the hlt CPU instruction, which is
no-hlt
                   broken on some older chips.
                   Changes the root file system device to the one specified. For
root=
                   example, to mount a floppy disk as the root file system you
                   would use root=/dev/fd0.
                   Mounts the root file system read-only so that fsck can fix any
ro
                   errors on the disk.
                   Mounts the root file system read/write. This is the default.
rw
                   Stops a driver from probing the specified IO port region. Some
reserve=
                   hardware reacts badly to this scanning.
                   Tells the kernel the amount of RAM installed in the system.
mem=
                   Tells the kernel to reboot N seconds after a kernel panic. A
panic=N
                   kernel panic occurs when a nonrecoverable error happens in
                   the kernel and the entire machine crashes.
                   Sets the type of reboot used when the system is instructed to
reboot=[warm|cold]
                   restart.
[,[bios|hard]]
                   Disables SMP support.
nosmp
                   Sets the maximum number of CPUs used to N.
maxcpus=N

Customitzant la imatge de fons

Consulteu:

Documentació de LILO

En sistemes de la família Debian existeix un paquet de documentació. Per instal·lar-lo:

$ sudo apt-get install lilo-doc

El manual esta comprimit, el podeu descomprimir i consultar amb:

$ sudo gunzip /usr/share/doc/lilo/Manual.txt.gz
$ joe /usr/share/doc/lilo/Manual.txt

Crear un disc d'inici

Consulteu:

http://members.iinet.net.au/~herman546/p4.html#mkboot

Exemples d'ús

Indicar al sistema la quantitat de memòria RAM disponible

Cal utilitzar el paràmetre mem:

mem=

Resolució de problemes. Troubleshooting

Continua sortint GRUB després d'instal·lar LILO

Després de la configuració, però en aquest cas el assistent de la configuració del paquet ho ha fet per vosaltres. Cal tenir en compte que sudo lilo sense més opcions no instal·la el lilo al MBR i per tant no sobrescriurem GRUB. Per instal·lar LILO al MBR cal executar:

$ sudo /sbin/lilo -M /dev/sda1 mbr


Vegeu també

Enllaços externs