Ich hatte das Unglück, eine doppelt bootende Windows XP / 7-Box klonen zu müssen, um ihre Festplatte durch eine kleinere zu ersetzen. Ich hatte große Probleme, es zu booten und würde gerne verstehen, was los ist und ob ich etwas besseres machen könnte.
Hintergrund: Die Maschine verfügt über ein 750-GB-Laufwerk mit drei Partitionen:
- Windows XP
- Windows 7
- Daten
Die ursprüngliche Installation wurde so durchgeführt, dass keine separate Windows 7-Wiederherstellungspartition vorhanden ist. Ich hoffe, dass diese Tatsache die Dinge etwas vereinfacht.
Ich ersetze es durch ein 80-GB-Laufwerk. Die Partitionen wurden bereits in Windows 7 verkleinert, sodass sie auf die kleinere Festplatte passen.
Ich habe GParted
(von einer PartedMagic
Linux LiveCD) verwendet, um die Partitionen zu kopieren. Ich markiere die Windows XP-Partition als die aktive Partition (die gleiche wie auf der Originaldiskette).
CloneZilla
Aufgrund des Übergangs von einer größeren zu einer kleineren Festplatte konnte ich keine vollständige Disc kopieren.
Nach dem Kopieren der Partitionen habe ich den Bootloader manuell kopiert (wobei darauf geachtet wurde, die Partitionstabelle nicht zu kopieren):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
Ich habe die Originaldiskette entfernt, die neue so eingestellt, dass sie physisch mit der Originaldiskette (IDE-Kanal 1-Master) identisch ist, und habe versucht zu booten. Dadurch wurde das Startmenü erfolgreich angezeigt, aber bei Auswahl einer der beiden Optionen ist dies fehlgeschlagen (es gibt zwei Optionen: eine für XP und eine für Win7).
Ich habe ein bisschen nachgeforscht und festgestellt, dass die Windows 7-Startkonfigurationsdaten nicht alles enthalten, was sie sollten. Ich verglich die BCD-Ausgabe der Original- und der neuen Festplatte und stellte fest, dass die Geräteeinträge auf letzterer vorhanden waren unknown
. Also habe ich sie manuell geändert, um sie dem Original anzupassen - so:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
und neu gestartet. Diesmal konnte ich sowohl XP als auch Win7 booten. Ich muss mehr Tests durchführen, da es andere Unterschiede zwischen den beiden BCDs zu geben scheint, aber die oben genannten Änderungen zumindest das Booten ermöglichten.
Meine Frage ist also wirklich, warum der BCD auf einer geklonten Partition anders als das Original aussieht und ausreichend, um das Booten zu verhindern.
Und eine Folge davon wäre zu fragen, ob ich das anders machen sollte?
bcdboot
eine einfachere Möglichkeit darstellt, einen Starteintrag neu zu erstellen. Ich bin jedoch nicht sicher, ob er in einem XP / W7-Dual-Boot-Szenario geeignet ist.Gemäß dieser inoffiziellen Dokumentation zu BCD-Interna werden Partitionen im BCD-Speicher tatsächlich durch die Datenträgersignatur und den Partitionsoffset identifiziert. Sie haben die Datenträgersignatur (MBR-Bytes 440–443) kopiert, aber höchstwahrscheinlich die Partitionsversätze geändert, als Sie Partitionen auf eine kleinere Festplatte verschoben haben. Daher konnte BOOTMGR diese Partitionen nicht mehr finden.
quelle
bcdedit
). Ich selbst bevorzuge Visual BCD Editor. Wenn Sie in eine Windows-Umgebung gelangen, können Sie mit Visual BCD das Startgerät ganz einfach einstellen. Sie können dasselbe von der Boot-DVD aus tun, indem Sie die Eingabeaufforderung öffnen (ich glaube, es war F11 oder so) undbcdedit
dort verwenden. Ich würde gegen die Systemreparatur raten, wenn Sie das Problem manuell beheben möchten, da bei der Systemreparatur zuvor die Umgebung für die Festplattenwiederherstellung entfernt wurde.