hdc
per avviarlo come hda
usando bios=
Lilo permette di mappare l'immagine del kernel da un disco e di istruire
il BIOS perché la recuperi da un altro disco. Per esempio, a me capita spesso di
installare Linux su un disco collegato come hdc
(disco principale
del controller secondario), e di avviarlo come sistema autonomo sul controller IDE
primario di un altro computer. Ho fatto una copia del floppy di installazione
in una piccola partizione, per poter installare su hdc
eseguendo chroot
su una console virtuale, continuando ad usare il sistema per fare altro.
Il file lilo.conf usato per installare Lilo ha questo aspetto:
# Questo file deve essere usato da un sistema che giri su /dev/hdc boot = /dev/hdc # sovrascrive l'MBR di hdc disk = /dev/hdc # specifica come hdc verrà visto: bios = 0x80 # il bios lo vedrà come primo disco delay = 0 vga = 0 image = /boot/vmlinux # l'immagine risiede su /dev/hdc1 root = /dev/hda1 # ma all'avvio sarà su hda1 label = Linux read-only
Questo file di configurazione deve essere usato da un Lilo funzionante su
/dev/hdc1. Le mappe di Lilo che vengono scritte nel settore di avvio
(/dev/hdc
) devono far riferimento ai file residenti in /boot
(attualmente installati su hdc); questi file verranno letti da hda
quando il disco verrà avviato come sistema autonomo.
Io chiamo questo file di configurazione /mnt/etc/lilo.conf.hdc
(/mnt
è dove viene montato hdc durante l'installazione). L'installazione
di Lilo avviene invocando ``cd /mnt; chroot . sbin/lilo -C
/etc/lilo.conf.hdc
''. Si faccia riferimento alla pagina di manuale di
chroot se questo comando sembra una magia.
La direttiva ``bios=
'' di lilo.conf
si usa per dire
a Lilo che cosa il BIOS pensa dei propri dispositivi. Le chiamate al BIOS identificano
i floppy e i dischi rigidi con un numero: 0x00 e 0x01 selezionano
i dischi floppy, 0x80 e i numeri successivi selezionano i dischi rigidi (i
vecchi BIOS possono accedere solo a due dischi). Il significato di ``bios = 0x80
''
usato nell'esempio precedente significa quindi ``usa 0x80 nelle chiamate al BIOS
per /dev/hdc
''.
Questa direttiva di Lilo può essere utile in altre situazioni, per esempio quando il proprio BIOS è in grado di avviare il sistema da dischi SCSI piuttosto che da dischi IDE. Quando sono presenti sia dispositivi IDE che SCSI, Lilo non può sapere se 0x80 si riferirà all'uno o all'altro, poiché l'utente può scegliere quale usare tramite i menu di configurazione del BIOS, e non è possibile accedere al BIOS mentre Linux è in funzione.
Lilo, come comportamento predefinito, assume che i dischi IDE vengano mappati per primi dal BIOS.
Si può annullare questo comportamento usando nel proprio /etc/lilo.conf
istruzioni come queste:
disk = /dev/sda bios = 0x80