OK, ein beinahe reines Windows-Thema ist ungewöhnlich hier. Aber ich habe gerade viele Leser aus dem Windows-Umfeld, denen es weiterhilft, wenn Sie wissen, wie man mit einer Linux-Live-CD und dem Bootloader GRUB seine Windows-Installationen besser in den Griff bekommt. Darum im Tool der Woche: GRUB und fdisk.
Wer Windows in der von Microsoft vorgesehenen Reihenfolge erst XP, dann Vista, dann 7 installiert, wird selten Probleme bekommen: Jedes Windows erkennt seine Vorgänger und bindet diese in den eigenen Bootloader ein. Trickserei ist aber gefragt, wenn kein Windows vom anderen Kenntnis haben soll oder man zu jeder Zeit ein beliebiges Windows durch eine Neuinstallation ersetzen möchte. Der Standard-Bootmanager von Windows scheitert hieran, Abhilfe schafft der kostenlose und von Linux-Distributionen bekannte GRUB. Netter Nebeneffekt meiner Lösung: Jedes Windows hat den Laufwerksbuchstaben C: für die Systempartition.
Im folgenden b eschreibe ich, wie man Windows XP, Windows Vista und Windows 7 unabhängig voneinnader installiert. Je nach Bedarf können Sie auch zweimal XP und einmal 7 installieren oder die Reihenfolge variieren. Einzige Einschränkung ist die Limitation bootfähiger Windows-Versionen auf drei, was durch die maximale Anzahl an primären Partitionen bedingt ist. Wer GRUB auf eine zweite Festplatte, Diskette, USB-Stick oder CD auslagert, kommt auf vier.
Als Werkzeugkiste kommt eine Sidux-Live-CD in Version 2008-04 zum Einsatz. Im Prinzip sollte es jede Live-CD tun, die Gparted und fdisk mitbringt. Schlimmstenfalls sind auf Grund anderer Mountpoints etc. einige Parameter anders einzugeben.
Vorbereitung der Festplatte
Die Partitionierung der Festplatte nehmen wir unter Sidux vor. Rufen Sie in einem Terminalfenster sudo gparted auf, um den Partitionseditor zu starten. Hier legen Sie nun eine primäre Partition mit NTFS-Dateisystem für die erste Windows-Installation, zwei weitere primäre Partitionen ohne Dateisystem und eine kleine (alles ab 30MB aufwärts genügt) primäre FAT16- oder FAT32-Partition für den Bootloader an. Schreiben Sie die Änderungen der Partitionstabelle und ändern Sie anschließend die Flags: Die NTFS-Partition muss das Bootflag gesetzt haben, damit sich Windows problemlos installieren und starten lässt. Bei dieser Gelegenheit können Sie sich gleich mit der Notation für Laufwerke unter Linux vertraut machen: /dev/sda ist die erste Festplatte, die enthaltenen Partitionen sind nummeriert: eins bis vier für primäre, respektive erweiterte und fünf bis unendlich für logische Partitionen.
Installation von Windows XP
Nun ist die Installation von XP an der Reihe. Hier gibt es wenig Spektakuläres zu vermelden: Bei der Installation ist auf die Auswahl der richtigen Partition zu achten, führen Sie eine Schnellformatierung durch, damit sichergestellt ist, dass XP mit der Version des Dateisystems klarkommt.
Sicherung der XP-Installation und Aktivierung einer weiteren Partition
Wir booten nun erneut das Live-Linux-System. Allerdings ist jetzt etwas Kommandozeilen-Voodoo nötig. Achten Sie auf die Details: ein # kennzeichnet einen Root-Prompt, den wir zuvor mit sudo su angefordert haben. Da wir unsere XP-Installation sichern und dann mutwillig beschädigen (!!!) werden, benötigen Sie bspw. einen USB-Stick. In unserem Beispiel dient eine 16GB-Festplatte (es handelt sich um eine VMware) mit einer einzigen FAT32-Partition als Sicherungsmedium. Sie wird als /dev/sdb erkannt.
-
Mounten Sie das Laufwerk, welches zur Sicherung dient, indem Sie es im Bereich “Speichermedien” auf dem Desktop einfach anklicken. Der Befehl “mount” oder “df” verrät dann Mountpoint, also Ordner, unter dem der Datenträger verfügbar ist. In unseren Fall ist dies /media/disk2part1.
-
Öffnen Sie ein Terminalfenster, in dem Sie mit sudo su Rootrechte erlangen. Dort lassen Sie dich mit fdisk die aktuelle Partitionierung anzeigen die XP-Partition wird meist /dev/sda1 sein. Nun sichern Sie mit dd die ersten 16MB der Partition auf die zweite Festplatte oder den USB-Stick: if=... kennzeichnet dabei die als Eingabedatei verwendete Windows-Partition. Anschließend überschreiben Sie die ersten 16MB mit Nullen (Eingabedatei /dev/zero). Sie verhindern so, dass die nächste Windows-Installation das Dateisystem findet und versucht, einzubinden.
-
Mit fdisk /dev/sda starten Sie nun den Partitionseditor auf der ersten Platte. Den Typ der ersten Partition ändern Sie mit t auf da (Data), den Typ der zweiten Partition auf NTFS (7). Schließlich entziehen Sie /dev/sda1 mit a das Bootable-Flag und setzen es ebenfalls mit a auf /dev/sda2. Wenn p das gewünschte Ergenis anzeigt, sichern Sie die Partitionstabelle mit w.
-
Starten Sie nun den Rechner neu, beispielsweise durch Eingabe des Kommandos reboot.
Installation von Windows Vista
Nun ist die Installation von Vista an der Reihe. Hier gibt es wenig Spektakuläres zu vermelden: Bei der Installation ist auf die Auswahl der richtigen Partition zu achten, führen Sie eine Schnellformatierung durch, damit sichergestellt ist, dass Vista mit der Version des Dateisystems klarkommt.
Sicherung der Vista-Installation und Aktivierung einer weiteren Partition
Wir booten nun erneut das Live-Linux-System. Wieder ist etwas Kommandozeilen-Voodoo nötig. Wir sichern und beschädigen die Vista-Partition so, wie wir es zuvor mit der XP-Partition getan haben. Vergessen Sie das Einbinden des Laufwerks, auf dem Sie die Sicherung ablegen, nicht!
-
Öffnen Sie ein Terminalfenster, indem Sie mit sudo su Rootrechte erlangen. Dort lassen Sie dich mit fdisk die aktuelle Partitionierung anzeigen die Vista-Partition wird meist /dev/sda2 sein. Auch hier sichern Sie mit dd die ersten 16MB der Partition auf die zweite Festplatte oder den USB-Stick: if=... kennzeichnet dabei die als Eingabedatei verwendete Windows-Partition. Anschließend überschreiben Sie die ersten 16MB mit Nullen (Eingabedatei /dev/zero). Sie verhindern so, dass die nächste Windows-Installation das Dateisystem findet und versucht, einzubinden.
-
Mit fdisk /dev/sda starten Sie nun den Partitionseditor auf der ersten Platte. Den Typ der zweiten Partition ändern Sie mit t auf da (Data), den Typ der dritten Partition auf NTFS (7). Schließlich entziehen Sie /dev/sda2 mit a das Bootable-Flag und setzen es ebenfalls mit a auf /dev/sda3. Wenn p das gewünschte Ergenis anzeigt, sichern Sie die Partitionstabelle mit w.
-
Starten Sie nun den Rechner neu, beispielsweise durch Eingabe des Kommandos reboot.
Installation von Windows 7
Nun ist die Installation von Windows 7 an der Reihe. Sie verläuft wie die von Vista. Formatieren Sie die vorgesehene Partition und fahren Sie wie gewohnt fort.
Schreiben des Bootloaders
Jetzt muss der GRUB-Bootloader geschrieben werden. Mounten Sie hierfür die Partition, die GRUB später aufnehmen wird (im Beispiel /dev/sda4, gemountet unter /media/disk1part4) und die Partition, welche die gesicherten Partitionsanfänge enthält (im Beispiel /dev/sdb1, gemountet unter /media/disk2part1).
-
Prüfen Sie zunächst mit df | grep sd, ob die beiden benötigten Partitionen wirklich eingehängt sind. Anschließend schreiben Sie GRUB mit den auf dem Screenshot erkennbaren Parametern: --root-directory=/media/disk1part4 kennzeichnet die Partition, auf der die Konfiguration abgelegt ist, /dev/sda ist die Zielplatte.
-
GRUB benötigt nun noch eine Konfigurationsdatei /boot/grub/menu.lst auf der Installationspartition, hier also /media/disk1part4/boot/grub/menu.lst. Verwenden Sie den Befehl sudo kate /media/disk1part4/boot/grub/menu.lst um die Konfigurationsdatei anzulegen.
Hier die vollständige Konfiguration für Copy&Paste:
default 1 timeout 10 title Windows XP root (hd0,0) hide (hd0,1) hide (hd0,2) unhide (hd0,0) savedefault makeactive chainloader +1 title Windows Vista root (hd0,1) hide (hd0,0) hide (hd0,2) unhide (hd0,1) savedefault makeactive chainloader +1 title Windows 7 root (hd0,2) hide (hd0,0) hide (hd0,1) unhide (hd0,2) savedefault makeactive chainloader +1
Zu bemerken ist, dass GRUB Laufwerke anders kennzeichnet als Linux selbst: Zunächst fängt die Zählung bei Null an, zudem verwenden Platten keine Buchstaben. (hd0,0) ist also die erste Partition der ersten Festplatte. Unsere GRUB-Konfiguration versteckt bei jedem Start einer Windows-Installation die anderen (hide) und holt die eigene hervor (unhide). Übrigens: Um immer den zuletzt gewählten Eintrag zu starten, verwenden Sie default saved.
Anpassung der Partitionstypen
Nun müssen die mutwillig beschädigten Installation von XP und Vista repariert werden und die Partitionstypen wieder korrigiert werden:
-
Verwenden Sie wieder dd, um die gesicherten Partitionsanfänge zurückzuschreiben. Blockgröße und -anzahl sind jetzt nicht nötig:
-
Mit fdisk setzen Sie die Typen der als Datenpartition markierten Partitionen sda1 und sda2 jetzt wieder auf NTFS (7):
Der erste Start
Und so sieht GRUB dann aus:
Sollten Sie eine Windows-Installation neu installieren müssen, ist dies ganz einfach: Sichern Sie mit dd die Partitionsanfänge der beiden anderen, überschreiben Sie diese mit Nullbytes und ändern Sie den Partitionstyp auf da. Dann installieren Sie das Windows erneut. Nach abgeschlossener Installation setzen Sie die Partititionstypen zurück und spielen die gesicherten Partitionsanfänge zurück. Unter Umständen müssen Sie GRUB erneut installieren, wobei jedoch die Konfiguration erhalten bleibt.
Pingback: Das Rootserver-Experiment » Blog Archive » Randnotizen, 30. Januar 2009: Intels Hang zu Linux, russische Betriebssysteme, Mobiltelefone