Hallo, ich habe ein Problem mit der Einrichtung des Boot- Loaders. Bisher verwende ich hierfür den lilo, doch dieser wird zunehmend unbedeutender und demzufolge auch schwerer zu benutzen, je weiter die Entwicklung der Distribution fortschreitet. Ich habe noch SuSE Linux 9.3 auf der Platte, möchte aber nun auf 10.1 umstellen. Dabei stellt sich dann erneut die Frage nach dem Boot-Loader. Ich verwende ein System, dass neben Linux auch Windows XP enthält und möchte es auch dabei belassen. Um bei Veränderungen an Windows mittels Setup die leidige Überschreiberei des MBR zu umgehen, habe ich eine kleine, primäre Partition auf meiner Boot-Platte eingerichtet, die den Kernel startet und auch alle Dateien des lilo enthält. Sie wird im laufenden System als /boot3 (die 3 hat "historische" Gründe) gemountet. Der dort installierte lilo startet dann auch wahlweise XP. Der MBR bootet über seinen Standard-Code die als aktiv gekennzeichnete lilo-Partition. Ich verwende neben IDE in meinem System auch SCSI, wobei zur Erleichterung der Verkabelung (ich habe auch ein externes Gehäuse, in dem ein Streamer ist) zwei Kanäle vorhanden sind. Bedingt durch die Anordnung der Steckverbindungen (der externe Anschluss existiert nur an einem Kanal) sind die (mehreren) SCSI-Festplatten am zweiten Kanal angeschlossen. Dadurch ergibt sich nun die Reihenfolge der Platten: SCSI Kanal2, SCSI Kanal1 (allerdings nur andere Geräte wie CD oder Band), IDE Kanal, IDE Kanal2. Im BIOS (das das Booten steuert) ist diese Reihenfolge korrekt behandelt, Linux aber schert sich nicht um diese Reihenfolge. Dort ist es genau umgekehrt, erst kommt IDE (Kanal1, dann Kanal2), dann SCSI Kanal1, am Schluss Kanal2. Nun ist es im laufenden Betrieb natürlich relativ irrelevant, welche Reihenfolge die Platten im BIOS haben, wie gesagt, Linux interessiert das nicht. Es gibt aber ein paar Einschränkungen: In dem externen Gehäuse ist auch ein Wechselrahmen, der vor allem dem Test oder kurzfristigen Betrieb von Geräten dient. Ist da eine Platte drin, drängelt die sich vor die Anderen, da das am Kanal1 des SCSI hängt. Dadurch verschieben sich die Bezeichnungen wie sda oder so. Viel wichtiger ist allerdings, dass auch der lilo nur Bahnhof versteht, da er bei der Installation diese Information braucht, sie aber nicht bekommen kann. Der Kernel überschreibt nämlich beim Laden die Daten, die das BIOS über das System ermittelt, Linux könnte sie also nicht einmal bekommen, wenn es das versuchen würde. lilo lädt aber den Kernel-Code (und vorher die zweite Stufe des eigenen Programms) mit dem BIOS von der Festplatte, weshalb lilo auch die BIOS-Daten braucht. Deshalb versucht lilo, diese Daten zu erraten und verwendet dabei die Linux-typische Reihenfolge der Kanäle -und liegt damit hier falsch. Es gibt in der Datei 'lilo.conf' die beiden Parameter disk= und bios= die lilo genau dabei helfen. Dadurch kann man lilo verständlich machen, dass die erste SCSI-Platte am zweiten Kanal eben die BIOS- Bezeichnung 0x80 trägt und somit die BIOS- Funktionsaufrufe zum Laden des zweiten Teils von lilo und auch des Kernels genau diesen Wert verwenden müssen. Dadurch klappt das hier. Ich weis aber nicht, wie man den gleichen Effekt mit grub erzielt, ich weis nicht einmal, ob das überhaupt nötig ist. Da grub ja verstärkt mit Dateinamen arbeitet, also das Dateisystem verwenden kann, gelten hier etwas andere Regeln. Andererseits ist es mit der Programmierung eines Dateisystemtreibers ja nicht getan. Auch ein Gerätetreiber muss her, um eine Festplatte vollständig unabhängig steuern zu können. Da es ja verschiedene Schnittstellen (eben SCSI und IDE) gibt und zumindest bei SCSI auch keine einheitliche Norm für den Aufbau des erforderlichen Schnittstellenadapters existiert, wäre die Einbindung entsprechenden Codes für die Hardware in grub sehr aufwändig. Deshalb wurde es nicht gemacht, denke ich. Das BIOS kann das alles leisten und heutzutage über ein meist zusätzlich vorhandenes Protected-Mode-BIOS sogar im PM und daher mit voller Speicherkontrolle. Aber es verwendet eben diese Nummern, die muss also jedes Programm kennen, dass das BIOS benutzen möchte -und auch die Zuordnung dieser Nummern zu den Linux-internen Bezeichnungen wie sda oder hdb. Deshalb weis ich eben nicht, wie grub das macht. Ausprobieren ist ein gewisses Problem, da es im Grunde beliebig viele Varianten gibt, wie es gemacht sein könnte - da soll einem der richtige Weg denn auch erstmal einfallen. Weis jemand, wie man das mit grub erreichen kann? Um es noch einmal klarzustellen: Der Bootloader muss seine Boot-Platte, solange er über das BIOS darauf zugreift, unter Nummer 0x80 ansprechen können, die Linux-interne Notation und Reihenfolge würde aber ohne Hilfe vermutlich die Nummer 0x82 verwenden wolllen, was natürlich nicht funktioniert. Wie macht grub das? Tschüß und schonmal Danke für jeden Tipp Manfred