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/sda2
ist eine kleine Partition, diebootmgr
und hatBoot
.- Auf ist Windows 7 installiert , das sich nicht auf dieser Partition
/dev/sda3
befindet .bootmgr
Nun möchte ich Windows7 von /dev/sda3
nach kopieren /dev/sda1
und 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/sda1
wird 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/sda1
ist 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 bootmgr
korrekt 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/sda1
kopiert NTDETECT.COM
, NTLDR
von64ntfile.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.ini
oben 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:
- Mit welchem Dienstprogramm kann ich meine Windows-Startpartition auf eine andere Festplatte verschieben?
- Erstellen Sie mit Bcdedit ein bootfähiges BCD von Grund auf
- Sollten die Geräte- und OSDevice-Parameter die Boot- oder die Windows-Partition sein?
- Beheben von Problemen mit dem Windows 7-Bootmgr
- Kann ich den Fehler 0xc0000225 beheben, ohne Windows neu zu installieren?
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:)
bootsect /nt60 d: /mbr – um den Bootcode der sda1-Partition festzulegen (es schadet nicht, den Windows-Bootcode in den MBR zu schreiben)
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
- 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
- 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
- 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
- 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
testdisk
den 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 mit
mkdir
- Diese verschwinden beim nächsten Booten der System Rescue CD/des USB-Sticks
mount
Mounten Sie die alte Dell Recovery-Partition mit dem Befehl in /mnt/Dellmount /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 mit
mkdir
- 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).
- Erstellen Sie den Ordner /mnt/Win7/Boot mit
- Führen Sie
- Führen Sie GPartEd aus
- 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
- 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 mit
bcedit /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}
- Führen Sie DiskMgmt.MSC aus
- 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
- 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: