Machen Sie Windows bootfähig, nachdem Sie es von einer Partition auf eine andere kopiert haben

Machen Sie Windows bootfähig, nachdem Sie es von einer Partition auf eine andere kopiert haben

Ich habe Windows 7 von der Rettungs-DVD wiederhergestellt, die mit meinem Laptop mitgeliefert wurde. Die Wiederherstellung partitioniert das SSD-Laufwerk auf die Werkseinstellungen zurück, aber das möchte ich ändern. Genauer gesagt lauten die Partitionen nach Abschluss der Wiederherstellung wie folgt:

root@ubuntu:~# fdisk -l /dev/sda

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419432447   209715200   27  Hidden NTFS WinRE
/dev/sda2   *   419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200    7  HPFS/NTFS/exFAT

Kommentare:

  • /dev/sda2ist eine kleine Partition, die bootmgrund hat Boot.
  • Auf ist Windows 7 installiert , das sich nicht auf dieser Partition /dev/sda3befindet .bootmgr

Nun möchte ich Windows7 von /dev/sda3nach kopieren /dev/sda1und bootfähig machen. Da die Partitionen gleich groß sind, ist das unter Linux ganz einfach:

root@ubuntu:~# dd if=/dev/sda3 of=/dev/sda1 bs=4096

Danach habe ich den Partitionstyp geändert:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419432447   209715200    7  HPFS/NTFS/exFAT
/dev/sda2   *   419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200    7  HPFS/NTFS/exFAT

Dann habe ich neugestartet. Windows7 bootet von /dev/sda3(das wird C:) und /dev/sda1wird D:. Jetzt mache ich die Windows7-Kopie bootfähig (sieheUmschalten meiner Windows 7-Startdiskette von D auf C mit BCDBootUndIst es möglich, alle Windows 7-Dateien von einer Festplatte auf eine andere zu kopieren?):

C:\> bcdboot d:\windows /s d:
Boot files successfully created.

C:\> bootsect /nt60 d: /mbr
Target volumes will be updated with BOOTMGR compatible bootcode.
F: (\\?\Volume{b6e65e71-6179-11e5-82c7-806e6f6e6963})
Successfully updated NTFS filesystem bootcode.
\??\PhysicalDrive0
Successfully updated disk bootcode.
Bootcode was successfully updated on all targeted volumes.

Überprüfen:

C:\> bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {0b9ac060-6182-11e5-b742-8dbb81fd6d74}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
nx                      OptIn

C:\> bcdedit /store D:\Boot\BCD

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=D:
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {default}
resumeobject            {f38db522-680d-11e5-829a-18f46ae2d7b0}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=D:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  en-us
inherit                 {bootloadersettings}
osdevice                partition=D:
systemroot              \windows
resumeobject            {f38db522-680d-11e5-829a-18f46ae2d7b0}
nx                      OptIn
detecthal               Yes

Nachdem ich Linux gebootet und die Partition als bootfähig markiert habe (das kann man unter Windows machen, aber ich verwende die Tools, mit denen ich vertraut bin):

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   419432447   209715200    7  HPFS/NTFS/exFAT
/dev/sda2       419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200   27  Hidden NTFS WinRE

Der Inhalt /dev/sda1ist der folgende (bitte noch einmal überprüfen):

root@ubuntu:~# ls -l /mnt/sda1
total 10749077
drwxrwxrwx 1 root root       4096 Sep 25 06:11 Boot
-rwxrwxrwx 1 root root     383786 Nov 20  2010 bootmgr
drwxrwxrwx 1 root root          0 Sep 23 21:50 Config.Msi
lrwxrwxrwx 2 root root         60 Jul 14  2009 Documents and Settings -> /mnt/sda1/Users
-rwxrwxrwx 1 root root 4717092864 Sep 23 21:50 hiberfil.sys
-rwxrwxrwx 1 root root 6289461248 Sep 23 21:50 pagefile.sys
drwxrwxrwx 1 root root          0 Jul 14  2009 PerfLogs
drwxrwxrwx 1 root root       4096 Sep 23 20:35 ProgramData
drwxrwxrwx 1 root root       8192 Sep 23 21:26 Program Files
drwxrwxrwx 1 root root      12288 Sep 23 21:12 Program Files (x86)
drwxrwxrwx 1 root root       4096 Sep 22 22:00 $Recycle.Bin
drwxrwxrwx 1 root root      20480 Sep 23 21:50 System Volume Information
drwxrwxrwx 1 root root       4096 Sep 23 21:05 Temp
drwxrwxrwx 1 root root          0 Sep 23 21:50 Update
drwxrwxrwx 1 root root       4096 Sep 22 21:58 Users
-rwxrwxrwx 1 root root       4112 Jul 19  2011 version
drwxrwxrwx 1 root root      24576 Sep 23 21:02 Windows

Sieht gut aus. Leider bekomme ich beim BootenBootmgr is missing. Press Ctrl+Alt+Del to restart.

Ich habe Grub wie folgt installiert /dev/sda1(überschreibt den Standard-Bootloader):

grub-install --force --no-floppy --boot-directory=/mnt/sda1/Boot /dev/sda1

mit den folgenden /mnt/sda1/Boot/grub/grub.cfg:

menuentry "Windows 7" {
    insmod ntfs
    insmod ntldr
    ntldr (hd0,msdos1)/bootmgr
}

Grub hat die Kontrolle bootmgrkorrekt an übergeben, aber es bootet ständig von /dev/sda3. Wenn ich die Partition entferne /dev/sda3, wird dieanfänglicher Startbildschirmwird angezeigt, aber dann passiert nichts (der Bootvorgang hängt einfach).

Als nächstes habe ich installiert ntldr( /dev/sda1kopiert NTDETECT.COM, NTLDRvon64ntfile.zip) mit "nativem" Bootsektor:

C:\> bootsect /nt52 d:

und das boot.ini:

[Boot Loader]
timeout=30
Default=multi(0)disk(0)rdisk(0)partition(1)\Windows

[Operating Systems]
multi(0)disk(0)rdisk(0)partition(1)\Windows="Windows 7 (boot.ini)" /fastdetect

Nach dem Booten wird angezeigt: „Ein Festplattenlesefehler ist aufgetreten“. Es ist unwahrscheinlich, dass ein SSD-Laufwerk auf diese Weise ausfällt, daher denke ich, dass das Problem im Boot-Bytecode/der Boot-Logik liegt, die die Adressierung/das Layout des Laufwerks nicht richtig verarbeiten kann. Ich habe Grub (wie oben) mit dieser Konfiguration installiert:

menuentry "Windows 7" {
    insmod ntfs
    insmod ntldr
    ntldr (hd0,msdos1)/ntldr
}

und dann konnte ich mein Menü wie boot.inioben sehen. Wenn ich fortfahre, startet der Computer ohne Fehlermeldung neu (ich bin also in der Schleife).

Wie behebt man das Problem? Jede Lösung zum Booten von Windows von der 1. Partition ist willkommen.

Weitere Beiträge zum Thema, die ich geprüft habe:

PS: Beim Testen sind keine anderen Laufwerke oder USB-Sticks am Notebook angeschlossen.

Antwort1

Nachdem Sie sda3 nach sda1 kopiert haben, gibt es in der Windows-Registrierung auf sda1 noch einige „Zeiger“, die auf sda3 zeigen. Überprüfen Sie den Inhalt von HKLM\SYSTEM\MountedDevices\DosDevices\C: und D:, ob sie auf die richtige Partition zeigen. (Der Wert von \DosDevices\C: ist die Partitionssignatur – sollte die Signatur für sda1 sein)

So erstellen Sie Startdateien für sda1: (beim Start wird sda3 auf c: abgebildet, sda1 auf d:)

  1. bootsect /nt60 d: /mbr – um den Bootcode der sda1-Partition festzulegen (es schadet nicht, den Windows-Bootcode in den MBR zu schreiben)

  2. bcdboot d:\windows /sd: - um BCD auf sda1 zu erstellen

Sie müssen das vorhandene System-BCD auf sda2 und BCD auf sda1 nicht bearbeiten!!!

Ändern Sie zuletzt die aktive Partition in sda1.

Neustart.

SehenSo verschieben Sie Windows 7-Startdateien auf ein anderes Laufwerk/eine andere Partitionfür Hilfe.

Antwort2

Ich habe einige Schritte aufgeschrieben, die ich zur Lösung dieses Problems unternommen habe und die bei mir funktioniert haben. Daher hoffe ich, dass es auch zukünftigen Lesern und vielleicht sogar dem OP hilft, obwohl es schon eine Weile her ist.


Vorgehensweise, mit der ich Windows 7 von einer Partition auf einer kleineren, langsameren Festplatte auf eine schnellere Festplattenpartition in einem Dell OptiPlex 780 MT migriert habe

  1. Besorgen Sie sich ein oder mehrere USB-Flash-Laufwerke
    • 32 GB+ empfohlen
    • Ich habe Amazon Smiles verwendet, damit beim Einkaufen eine Spende für wohltätige Zwecke generiert werden kann
  2. Erstellen Sie eine System Rescue CD auf einem der bootfähigen USB-Flash-Laufwerke
    • Es ist RIESIG geworden, seit ich es das letzte Mal benutzt habe und benötigt 16 GB+
    • Folgen Sie den Anweisungen der SysResc-CD unter Windows mit Rufus
  3. Verkleinern Sie die Volumes auf die Mindestgröße, sodass auf den Betriebssystempartitionen ca. 40 GB frei bleiben.
    • Das Ziel besteht darin, auf der neuen Festplatte genügend nicht zugeordneten Speicherplatz zu haben, der der Größe der ursprünglichen Windows 7-Partition entspricht oder diese übersteigt.
    • Sichern/verschieben Sie Daten von Partitionen auf einen USB-Stick oder ein anderes externes Laufwerk.
    • Führen Sie eine Datenträgerbereinigung und Defragmentierung durch
    • DiskMgmt.MSC in W7 kann jetzt zum Erweitern/Verkleinern von Volumes verwendet werden
  4. Booten mit der System-Rettungs-CD
    • Achtung: Wenn Sie BIOS-System- und Administratorkennwörter in Großbuchstaben haben, wird System Rescue CD denken, dass Sie versuchen, es benutzerdefiniert zu booten. Sie werden dann an der LILO-artigen Boot-Eingabeaufforderung ohne Anweisungen, Hilfe, Befehle usw. zum Booten landen. Ich habe das BIOS-Systemkennwort gelöscht, damit es das Standard-Bootmenü erreichen kann.
    • Sobald der Bootvorgang erfolgreich war, führen Sie aus startx, um in die GUI zu gelangen
      • Führen Sie GPartEd aus
        • Gehen Sie zum alten, langsameren Laufwerk mit der aktuellen Windows 7-Installation und kopieren Sie die Windows-Partition
        • Gehen Sie zum neuen, schnelleren Laufwerk mit dem nicht zugeordneten Speicherplatz und fügen Sie die kopierte Partition ein
        • Der Vorgang kann je nach Hardware einige Minuten dauern, bietet aber einen Fortschrittsbalken
        • Markieren Sie die kopierte Windows 7-Partition als aktiv
      • Gehen Sie zu einem Terminal/Eingabeaufforderungsfenster
        • Führen Sie testdiskden Bootsektor der neuen Windows 7-Partition aus und erstellen/setzen Sie ihn zurück (ich weiß nicht, ob dieser Schritt notwendig ist, aber ich habe es einfach gemacht)
          • Google Verwenden von Testdisk zum Wiederherstellen des Bootsektors auf einer Partition
        • Erstellen Sie die Ordner /mnt/Dell und /mnt/Win7 mitmkdir
          • Diese verschwinden beim nächsten Booten der System Rescue CD/des USB-Sticks
        • mountMounten Sie die alte Dell Recovery-Partition mit dem Befehl in /mnt/Dell
          • mount /dev/hdb1 /mnt/Dell
        • Mounten Sie die neue Windows 7-Partition unter /mnt/Win7
          • mount /dev/hda4 /mnt/Win7
        • Kopieren Sie die Windows-Bootloaderdateien auf die neue Windows 7-Partition
          • Erstellen Sie den Ordner /mnt/Win7/Boot mitmkdir
          • Kopieren Sie /mnt/Dell/bootmgr mit dem Befehl nach /mnt/Win7 cp/
          • cp /mnt/Dell/boot.sdi /mnt/Win7/
          • cp /mnt/Dell/Boot/BCD /mnt/Win7/Boot/
          • Sie können auch die Datei /Boot/BCD.LOG kopieren, sind sich aber nicht sicher, ob das notwendig ist
          • Beachten Sie, dass diese Startkonfiguration immer noch auf die alten Start- und Systempartitionen von Windows 7 verweist. Sie muss bearbeitet werden, um auf die neuen Start- und Systempartitionen von Windows 7 zu verweisen (in meinem Fall die gleichen).
  5. Booten Sie ins BIOS
    • Startgerät vom alten auf das neue Laufwerk ändern
    • Alternativ können Sie das Boot-Menü verwenden Booten von neuer Windows 7 Partition erfolgreich
  6. Booten Sie mit Windows 7
    • Da es auf die alten Boot- und Systempartitionen verweist, funktioniert es immer noch auf der alten Festplatte
    • Das Laufwerk C: ist das alte System
    • Öffnen Sie eine Eingabeaufforderung als Administrator
      • Führen Sie DiskMgmt.MSC aus
        • Geben Sie der neuen Windows 7-Partition einen Laufwerksbuchstaben, falls noch keiner zugewiesen ist (in meinem Fall G:).
      • Navigieren Sie zum Verzeichnis G:\Boot
        • G:
        • cd Boot
      • Zeigen Sie die Bootkonfiguration auf der neuen Partition an mitbcedit /store BCD
        • Notieren Sie sich die aktuelle alte Boot-GUID (in meinem Fall {d57db94d-450e-11e5-a383-b8ac6f1ac098}).
      • Bearbeiten Sie die neu kopierte Startkonfiguration, um die neue Windows 7-Partition hinzuzufügen
        • ReferenzHinzufügen von Starteinträgen
        • bcdedit /store /copy {d57db94d-450e-11e5-a383-b8ac6f1ac098} /d "Win7 Debug"
          • Neue W7-Partitions-GUID jetzt {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098}
        • bcdedit /store BCD /enum /v(Um die GUIDs als Referenz anzuzeigen)
        • ReferenzWie verschiebe ich die Windows 7-Startdateien bootmgr auf ein anderes Laufwerk(Vielen Dank an red.october, dass er seine Frage und Antwort auf dieser Site gepostet hat!)
        • bcdedit /store BCD /set {bootmgr} device partition=G:
        • Weitere Schritte in meinem Fall
          • bcdedit /store BCD /set {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} device partition=G:
          • bcdedit /store BCD /set {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} osdevice partition=G:
          • bcdedit /store BCD /displayorder {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098} {d57db94d-450e-11e5-a383-b8ac6f1ac098}
          • Optional können Sie die neue Bootpartition als Standard festlegen
            • bcdedit /default {c15e345e-9c47-11ea-a7d8-b8ac6f1ac098}
  7. Neustart mit der System Rescue-CD/dem USB
    • Verwenden Sie GPartEd, um die alte Windows 7-Partition als versteckt zu markieren
    • Entfernen Sie die Markierung des Boot-Flags auf der alten Dell System Recovery-Partition
  8. Starten Sie Windows 7 auf dem neuen Laufwerk neu

Wenn Sie keine Fehler gemacht haben und bei keinem der Schritte Schwierigkeiten oder Fehler aufgetreten sind, haben Sie wie ich sowohl die Windows 7-Partition als auch den Windows 7-Bootmanager erfolgreich von einer Partition auf der Originalfestplatte auf eine neue Partition auf einer anderen Festplatte migriert, ohne eine Windows 7-Wiederherstellungsdiskette zu verwenden (die OEM-Wiederverkäufer nicht mit einem PC ausgeben) und ohne fragwürdige Apps von Drittanbietern zu verwenden. Eine angenehme Überraschung ist, dass, falls Sie vor der Migration EFS-verschlüsselte Dateien oder Ordner hatten, diese auf der neuen Partition weiterhin zugänglich sind, ohne dass Sie sie zuerst entschlüsseln müssen. DiskMgmt.MSC zeigt jetzt die neue Windows 7-Partition als C: und die alte Windows 7-Partition ohne Laufwerksbuchstaben an.

Sobald Sie die neue Windows 7-Partition vollständig unabhängig von der ursprünglichen Festplatte gebootet haben, können Sie herausfinden, wie Sie den Bootloader auf dieser Partition bereinigen, damit alles auf diese Partition statt auf die alte Windows 7-Partition verweist. Wenn Sie wie ich eine Windows XP-Partition auf der neuen Festplatte haben, können Sie auch mit bcdedit einen Eintrag hinzufügen, um diese zu booten. Wenn Sie sicher sind, dass alles stabil ist, können Sie die alte Partition löschen und für andere Zwecke verwenden. Ich hoffe wirklich, dass dies jemand anderem hilft, ähnliche Unterfangen zu vollbringen.


W7-Datenträgerverwaltung nach der Migration:

W7-Datenträgerverwaltung nach der Migration

verwandte Informationen