Ich habe zwei IDE- und eine SCSI-Platte. Dabei wird die SCSI-Platte nicht vom BIOS erkannt. Der Linux-Lader (LILO) benutzt BIOS-Aufrufe und kann deshalb nur Platten erkennen, die auch das BIOS erkennt. Das dumme AMI BIOS bootet leider nur von »A:« oder »C:«. Mein Root-Dateisystem ist aber auf einer Partition des SCSI-Laufwerks.
Die Lösung ist, den Kernel, die Map-Datei, und den Chain-Loader in eine Linux-Partition auf der ersten IDE-Platte zu installieren. Es sei darauf hingewiesen, daß es nicht notwendig ist, den Kernel auf der Root-Partition zu haben.
Die zweite Partition meiner ersten IDE-Platte (/dev/hda2
,
die Linux-Partition zum Booten) ist unter /u2
gemountet. Hier
kommt die /etc/lilo.conf
, welche ich dafür benutze:
# Installiere LILO in den »Master Boot Record«
# auf der erste IDE-Platte
boot = /dev/hda
# /sbin/lilo (der Installierer) kopiert LILOs Boot Record
# vom folgenden File in den MBR
install = /u2/etc/lilo/boot.b
# Ich schrieb mir ein ausführliches Boot-Menü. LILO findet es unter
message = /u2/etc/lilo/message
# Der Installierer generiert das folgende File, welches dem
# Boot-Lader sagt wo die Blöcke des Kernels sind.
map = /u2/etc/lilo/map
compact
prompt
# Warte 10 Sekunden, boote dann den 1.2.1 Kernel als Standard
timeout = 100
# Der Kernel wird dort installiert wo ihn das BIOS sehen kann, durch:
# cp -p /usr/src/linux/arch/i386/boot/zImage /u2/z1.2.1
image = /u2/z1.2.1
label = 1.2.1
# LILO sagt dem Kernel, dass die erste SCSI-Partition als Root
# gemountet werden soll. Das BIOS braucht diese Partition nicht
# zu erkennen.
root = /dev/sda1
# Diese Partition wird geprüft und nochmal gemountet durch /etc/rc.d/rc.S
read-only
# Ich behalte einen alten Slackware Kernel für den Fall, daß ich einen
# Kernel generierte habe, welcher nicht funktioniert. (Ich brauchte ihn
# tatsächlich schon einmal)
image = /u2/z1.0.9
label = 1.0.9
root = /dev/sda1
read-only
# Meine DR-DOS 6 Partition
other = /dev/hda1
loader=/u2/etc/lilo/chain.b
label = dos
alias = m