Seguramente mucho de nosotros, usuarios de GNU/Linux, en especial los que estamos hace un tiempo en el mundillo hemos lidiado con el dichoso “lilo” , selector de arranque o boot manager como también suele conocercelos, la idea de este programita es instalarse en el sector de arranque de un disco rígido y desde allí ejecutarse para permitirnos durante tiempo de arranque, y apenas leído el disco rígido de nuestra computadora , seleccionar con que sistema operativo de los que tengamos instalados vamos a iniciar sesión, además entre otras opciones los boot managers normalmente nos permiten refinar mas el tipo de parámetros que queremos pasar al sistema operativo que seleccionamos, tales parámetros como opciones del kernel para nuestro núcleo linux tales como partición de arranque , imagen initrd a usar, módulos a cargar , parámetros de dichos módulos, etc..

Bueno, la cosa es que para los que ya lo conocen, LILO ha sido desde hace tiempo la opción preferida, quizás hoy en día tiene mas alternativas  que años atrás, pero la idea siempre fue brindarnos la opción de elegir con que arrancar. Luego de una instalación típica de un gnu/linux , normalmente no necesitamos configurar nada,  la mayoría de los instaladores lo configuran automáticamente, pero en caso de que ese no sea nuestra situación deberíamos saber que  /etc/lilo.conf es el archivo para modificar su configuración.

Lo típico indica que el usuario común lo instala en su disco rigido y sigue con su vida como si nada, pero hoy yo me enfocare en la posibilidad que tenemos de emplear lilo para iniciar un sistema GNU/Linux que se encuentra espejado mediante RAID 1 por software

He aquí un archivo típico de configuración adaptado para iniciar con disco en modo RAID 1 con un sistema con dos disco IDES espejados, de misma capacidad y marca (Ojo, esto no es necesario en RAID por software en GNU/Linux):

# Support LBA for large hard disks.
#
lba32
# Overrides the default mapping between harddisk names and the BIOS’
# harddisk order. Use with caution.
#disk=/dev/hde
#    bios=0x81
#disk=/dev/sda
#    bios=0x80
# Specifies the boot device.  This is where Lilo installs its boot
# block.  It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/md0
# Specifies the device that should be mounted as root. (`/’)
#
root=/dev/md0
raid-extra-boot=/dev/hda,/dev/hdc
# Enable 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.  It is disabled here by default
# because it doesn’t always work.
#
# compact
# Installs the specified file as the new boot sector
# You have the choice between: bmp, compat, menu and text
# Look in /boot/ and in lilo.conf(5) manpage for details
#
#install=/boot/boot-menu.b

# Specifies the location of the map file
#
map=/boot/map

# password=tatercounter2000
#
delay=20
timeout=150
# Boot up Linux by default.
#
default=”Linux”

image=/vmlinuz
initrd=/initrd.img
label=”Linux”
append=”apm:on”
read-only
optional

image=/vmlinuz.old
initrd=/initrd.img.old
label=”LinuxViejo”
append=”apm:on”
read-only
optional

#other=/dev/hda3
#    label=Winchows

De este archivo nos interesan las lineas 14,17, 18, comentemos:

Linea 14:

boot=/dev/md0

Indica el dispositivo de inicio (o booteo), es donde lilo se instala, bla bla! RTFM of lilo; el porque es /dev/md0 y no un tipico /dev/hda o /dev/hdd o lo que fuese es que justamente es un dispositivo que se crea al momento de definir los discos raid por software y adjuntarles los disco reales, sean estos IDE o SATA. Normalmente tienen esa notacion , si fue el primer dispositivo raid creado md0, el segundo md1 and so on…

Linea 17:

root=/dev/md0

Aquí se especifica la  particion  definida como raiz del sistema (/)

Linea 18:

raid-extra-boot=/dev/hda,/dev/hdc

Y esta a mi parecer la mas importante, aqui especificamos cuales son los disco que conforman el dispositivo raid, y en los cuales se escribira lilo al momento de ejecutar su arrancable.

Al terminar de realizar las modificaciones en /etc/lilo.conf, bastaria con ejecutar lilo en linea de comandos como root para que se actualize su contenido en el MBR (Master Boot Record), o inicio de la particion elegida.

server:/# lilo

Added Linux *
Added LinuxViejo
The boot record of  /dev/md0  has been updated.
The boot record of  /dev/hda  has been updated.
Warning: /dev/hdc is not on the first disk
The boot record of  /dev/hdc  has been updated.
server:/#

La linea que sale marcada con asterisco indica que es el kernel seleccionado por defecto para iniciar. Como se observa se actualiza el registro de inicio tanto en el dispositivo RAID md0 como también en cada una de las particiones que lo conforman.

Listo, eso es todo , ya deberíamos tener nuestro sistema listo para que arranquemos con ambos discos o con solo uno de ellos. Se puede probar iniciando y observando como inicia con cualquiera de los disco que arranquen.
Espero haya sido de utilidad este poseo, apropos, casi me olvidaba, al principio mencione alternativas a lilo, una de ellas , y bastante extendida en cualquier instalador actual es GRUB, con muchas mas opciones y bondades que LILO, y también con opción de configurarse para iniciar en modo RAID, pero eso lo veremos en otro post.