Wie lassen sich hda/hdc-Platten ohne Verlust der Bootfähigkeit virtuell tauschen ?
Dazu nutzen wir eine frisch gebootete
LiveCD (d.h. ohne irgendwelche Anwendungen nach dem Booten zu starten) und schreiben die perl-Zeilen unbedingt hintereinander weg !
Dieses Beispiel gilt für 2 HD. Wir nennen sie
/dev/hda +
/dev/hdc. Grub ist auf
/dev/hdc und Linux auf der Partition /dev/hdc1 installiert, so das wir mit der
BIOS-Einstellung hd1 zu booten haben:
su
mount /dev/hdc1 /media/hdc1
Im folgenden arbeiten wir in einer chroot-Umgebung auf der Linux-Partition. Wir verwenden am einfachsten nur Kommandozeilentools. Die Editoren
mcedit oder
vim bemühen wir nur, um später für Windows einen Eintrag in der
/boot/grub/menu.lst hinzuzufügen.
chroot /media/hdc1
rm -f /boot/initrd*
perl -pi -e 's/hda/hdY/' /boot/grub/menu.lst /etc/fstab
perl -pi -e 's/hdc/hda/' /boot/grub/menu.lst /etc/fstab
perl -pi -e 's/hdY/hdc/' /boot/grub/menu.lst /etc/fstab
update-grub
mkdir -p $(grep media /etc/fstab |grep -v cdrom|awk '{print $2}')
Das sollte schon alles gewesen sein, um von
hd1 booten zu können.
Um Windows zu booten ist die
/boot/grub/menu.lst mit folgenden Zeilen zu ergänzen:
title Win (hda1)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1
Um mit der
BIOS-Einstellung hd0 zu starten, machen wir folgendes:
perl -pi -e 's/hd1/hdX/' /boot/grub/menu.lst
perl -pi -e 's/hd0/hd1/' /boot/grub/menu.lst
perl -pi -e 's/hdX/hd0/' /boot/grub/menu.lst
grub-install --no-floppy --recheck /dev/hda
sollte jetzt eine Fehlermeldung erscheinen, so wiederholten wir den Befehl:
grub-install --no-floppy --recheck /dev/hda
Jetzt können wir Windows mit starten:
title Win (hda1)
chainloader (hd0,0)+1
am Ende von
/boot/grub/menu.lst ergänzt.
zurück