Ho due dischi IDE e un disco SCSI. Il disco SCSI non può essere visto dal BIOS. Lilo, il Linux Loader, usa le chiamate al BIOS e può vedere solo i dischi che il BIOS vede. Il mio stupido BIOS AMI può avviare il sistema solo da "A:" o da "C:". Il mio file system root risiede su una partizione del disco SCSI.
La soluzione consiste nel memorizzare il kernel, la mappa dei file e il chain loader in una partizione Linux nel primo disco IDE. Si noti che non serve tenere il proprio kernel nella partizione root.
La seconda partizione del primo disco IDE (/dev/hda2, la
partizione Linux usata per avviare il sistema) è montata su /u2.
Ecco il file /etc/lilo.conf che ho usato.
# Installa LILO sul Master Boot Record del primo disco IDE
#
boot = /dev/hda
# /sbin/lilo (l'installatore) copia il boot record di Lilo
# dal file seguente all'MBR
install = /u2/etc/lilo/boot.b
#
# Ho scritto un menu di avvio prolisso. Lilo può trovarlo qui.
message = /u2/etc/lilo/message
# L'installatore creerà il file seguente. Dirà
# al gestore di avvio dove sono i blocchi del kernel.
map = /u2/etc/lilo/map
compact
prompt
# Aspetta 10 secondi, poi avvia il kernel 1.2.1 predefinito.
timeout = 100
# Il kernel è memorizzato dove il BIOS può vederlo facendo:
# cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
label = 1.2.1
# Lilo dice al kernel di montare la prima partizione SCSI
# come root. Non è necessario che il BIOS sia in grado di vederlo.
root = /dev/sda1
# Questa partizione verrà controllata e rimontata da /etc/rc.d/rc.S
read-only
# Ho tenuto da parte un vecchio kernel Slackware, nel caso io compili un
# kernel non funzionante. Una volta, in effetti, mi è servito.
image = /u2/z1.0.9
label = 1.0.9
root = /dev/sda1
read-only
# La mia partizione DR-DOS 6.
other = /dev/hda1
loader=/u2/etc/lilo/chain.b
label = dos
alias = m