[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: GRUB mit zwei bootbaren Disks



Am 22.08.2012 22:29, schrieb Michael Schuerig:

Wie erstellst Du die Kopie? Per dd if=/dev/sda of=/dev/sdb? Oder
mountest Du Dateisysteme und kopierst dateiweise z.B. mit rsync?

Die HD ist viel größer als die SSD und enthält eine Obermenge.
Insbesondere Musik brauche ich nicht auf der SSD. Die SSD ist auf /
gemountet und mit Bind-Mounts habe ich Verzeichnisse, die es nur auf der
HD gibt, eingehängt. Regelmäßig mache ich mit rsync Kopien der SSD an
die korrespondierenden Stellen auf der HD.

Dann würde ich rsync sagen, dass es die boot/grub/menu.lst nicht kopieren soll. Eventuell noch einen zweiten Kopierjob hinterher, der die menu.lst als menu.lst.sourcesystem oder so sichert.

Die beiden Partitionen versiehst Du mit unterschiedlichen Labels oder UUIDs. In der menu.lst des normalen Systems hinterlegst Du statt dem sd__-Device das Label bzw. die UUID der normalen Partition. Auf der Kopie entsprechend das/die der Kopie. Außerdem änderst Du in der Kopie die Einträge für den Kernel auf /vmlinuz und den für die initrd auf /initrd.img.

Warum: Die Debian-Kernel-Pakete sorgen normalerweise automatisch dafür, dass diese Symlinks auf den jeweils aktuellen Kernel zeigen. GRUB beherrscht Symlinks. Das Update der menu.lst, was normalerweise nach einem Kernelupdate erfolgt, dient eher dazu, verschiedene Kernelversionen im Bootmenü anbieten zu können. Das brauchst Du ja aber für Deinen Fall gar nicht.

Dann musst Du GRUB noch in den MBR der zweiten Platte schreiben, und ihm klarmachen, dass die zweite in diesem Fall die erste Platte ist:

grub<<END
device (hd0) /dev/sdb # Hier NUR /dev/sd_ anpassen, nicht hd_!
root (hd0,0) # Hier NUR die Zahl nach dem Komma ggf. anpassen!
setup (hd0)
quit
END

In Deine menu.lst im normalen System könntest du noch hinter der Markierung "### END DEBIAN AUTOMAGIC KERNELS LIST" den Block einkopieren, der in der menu.lst auf dem Reservesystem steht - mit dem Unterschied, dass statt root(hd0,0) nun root(hd1,0) hineingehört.

Die Device-Namen bzw. Nummern musst Du natürlich auf Deinen Fall anpassen:
sdb führt zu hd1, sdc zu hd2 usw.
Partition 1 gibt "hd_,0", Partition 2 gibt "hd_,1" usw.

/boot/grub/device.map muss natürlich Einträge für beide Platten enthalten, also z.B.:
(hd0)     /dev/sda
(hd1)  /dev/sdb

Falls das nicht drinsteht, schreibt grub-install --recheck /dev/sda die Datei neu.

Das ganze gilt für grub-legacy - falls es mit GRUB2 überhaupt funktionieren sollte, möge es Dir jemand anderes erklären.

Gruß
Stefan


Reply to: