hdc
pour booter en tant que hda
en utilisant bios=
Lilo permet de mapper l'image du noyau sur un disque et de dire au BIOS d'aller la chercher sur un autre disque. Par exemple, j'ai l'habitude d'installer Linux sur un disque connecté sur hdc (disque maître du second contrôleur IDE) et d'y booter comme système unique sur le contrôleur primaire d'un autre ordinateur. J'ai copié la disquette d'installations sur une petite partition, je peut donc faire un chroot depuis une console virtuelle pour installer hdc quand j'utilise le système pour faire autre chose.
Voilà le lilo.conf que j'utilise pour installer Lilo :
# Ce fichier doit être utilisé sur un système fonctionnant à partir
# de /dev/hdc
boot = /dev/hdc # on réécrit le MBR d'hdc
disk = /dev/hdc # On lui dit qui sera hdc
bios = 0x80 # Et le BIOS la verra en tant que premier disque
delay = 0
vga = 0
image = /boot/vmlinux # c'est sur /dev/hdc1
root = /dev/hda1 # Mais au boot, ça sera hda1
label = Linux
read-only
Ce fichier de configuration doit être lu par Lilo depuis /dev/hdc1
. La table de Lilo qui est écrite sur le secteur de boot (/dev/hdc
) doit se référer à un fichier dans /boot/
(en ce moment hdc
). Ce fichier sera accédé en tant que hda
quand il bootera comme seul système.
J'ai appelé ce fichier /mnt/etc/lilo.conf.hdc
(/mnt
est l'endroit où hdc est monté durant l'installation. J'installe Lilo en lançant "cd /mnt; chroot . sbin/lilo -C /etc/lilo.conf.hdc
". Allez lire la page man de chroot si vous trouvez ça magique.
Le "bios=
" du lilo.conf
est utilisé pour dire à Lilo ce que le BIOS pense de vos périphériques. Le BIOS identifie les lecteurs de disquettes et les disques durs par des numéros : 0x00 et 0x01 sélectionnent les disquettes, 0x80 et suivants, les disques durs (Les vieux BIOS ne peuvent accéder qu'à deux disques). La signification du "bios = 0x80
" dans l'exemple précédent est de dire à Lilo "utilise 0x80 dans tes appels BIOS pour /dev/hdc
".
Cette directive Lilo peut être très pratique dans d'autres situations, par exemple, quand votre BIOS est capable de booter depuis un disque SCSI à la place d'un disque IDE. Quand des périphériques IDE et SCSI sont présents, LILO ne sait pas à qui appartient 0x80, car l'utilisateur est capable de le changer depuis les menus du BIOS, et le BIOS ne peut pas être accédé quand Linux est lancé.
Par défaut, Lilo suppose que les disques IDE sont mappés en premier par le BIOS, mais il est possible de lui spécifier le contraire en utilisant ces instructions dans /etc/lilo.conf
:
disk = /dev/sda
bios = 0x80