Es ist nicht zwingend erforderlich, mit chroot zu arbeiten, um Grub auf einer anderen Platte bzw. auf einem anderem System, als dem gerade laufenden Linuxsystem zu installieren.
Grub setzt gar nicht voraus, in einem Linux-System installiert zu werden, Grub benötigt nur eine Partition, die vom Bios aus ansprechbar ist und genug Platz für seine Startdateien bietet. Und der Platzbedarf ist gering (wenige MByte). Deshalb empfiehlt es sich ja, auf auf jeder Platte die ersten paar Zylinder für die erste Partition zu verwenden, die nichts anderes enthält, als die Bootloader-Dateien (und eventuell noch einige Kernel und initrds, wenn man will). Dafür reichen 50 MByte idR locker aus. Wenn man die Sache perfektionieren will, kann man auf dieser Partition zusätzlich eine LiveCD installieren, die man aus- schließlich als Wartungssystem nutzt. Diese LiveCD braucht nicht viel zu können, PuppyLinux oder DamnSmallLinux (DSL) wären dafür eine gute Wahl. Die brauchen kaum mehr als weitere 50 bzw. 135 MByte Platz. Zurück zur Fragestellung. Die Probleme und Folgeprobleme aufgrund des Mountens von /dev/proc in der chroot kann man vermeiden. grub-install kennt für diese Zwecke den Parameter --root-directory Der Parameter wird einfach auf das Wurzelverzeichnis der (gemounteten!) Zielpartition gesetzt. Vorsichtshalber wählt man gleichzeitig den Parameter --recheck. Das ganze funktioniert am einfachsten unter einer LiveCD. (Und wenn eine solche LiveCD schon installiert ist, vgl oben, ist das wunderbar einfach). Beispiel: Hat man die Platte von hdc auf hda physikalisch umgesteckt, lautet der Aufruf, um grub auf der umgesteckten hda zu installieren, um grub anschliessend von der umgesteckten hda zu starten, unter der laufenden livecd wie folgt: mkdir /mnt/hda1 mount /dev/hda1 /mnt/hda1 grub-install --root-directory /mnt/hda1 --recheck /dev/hda Damit wird im obersten Verzeichnis von /dev/hda1 ein neues Verzeichnis /boot mit dem Unterverzeichnis /boot/grub angelegt und gleichzeitig der mbr von hda passend angepasst, um davon zu booten. Falls es Fehlermeldungen geben soll, könnte es daran liegen, dass /boot schon vorhanden ist. Dann das alte /boot auf /dev/hda1 einfach umbenennen. Achtung: Fehlerfalle! Im Prinzip spielt es keine Rolle, welche LiveCD eingesetzt wird. Aber es gibt eine Ausnahme. Problematisch kann es werden, wenn ein altes Linux-System mit einer LiveCD neueren Datums bearbeitet wird, die bereits alle Platten hda ... hdd auf sda ... sdd ummappen (z.B. neuere [K]ubuntu-Versionen). Wenn IDE-Platten auf dem alten installierten Linux-System noch als hda (und noch nicht als sda) angesehen werden, einfach eine alte LiveCD verwenden. Oder eine neue LiveCD, die noch nicht ummappt, z.B. GRML 1.0. Achtung: Fehlerfalle! Und nicht vergessen, vor dem reboot die Datei ../boot/grub/menu.lst anzupassen, weil sich der Standort der Platte verändert hat (in dem genannten Beispiel von (hd2,0) auf (hd0,0). Falls man das alte .../boot umbenennen mußte (s.o), einfach die die menu.lst aus dem alten ../boot verzeichnis rüberkopieren, bevor man sie editiert. pv -- Linux mailing list [email protected] subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo
