Ich muss noch einmal auf die Experten hier bei SuperUser zurückgreifen, da sich meine anderen Quellen (hauptsächlich Google ;-)) nicht als sehr hilfreich erwiesen haben ...
Im Grunde möchte ich ein VHD-Image eines physischen Laufwerks erstellen, das archiviert, auf das zugegriffen wird oder das möglicherweise sogar in einer virtuellen Maschine bereitgestellt wird. Jetzt gibt es Dutzende von Artikeln und Tutorials, wie man das im Web macht, aber keine, die genau die Bedingungen erfüllen, die ich erreichen möchte:
- Ich möchte, dass die Zieldatei ein VHD-Image ist , da Windows 7 es nativ einbinden kann, sogar über das Netzwerk, und viele andere Programme können es verwenden (VirtualBox, ...)
- Der Datenträger, auf dem ich ein Image erstellen
disk2vhd
möchte, enthält eine Windows XP-Installation. Theoretisch könnte ich das Dienstprogramm verwenden, aber ich möchte eine Lösung finden, bei der der Start der Windows XP- Installation nicht erforderlich ist (dh der Datenträger muss schreibgeschützt bleiben) ) - Daher suchte ich nach einer Lösung für ein Live-System (das von einem USB-Stick oder einem Netzwerk aus ausgeführt wird).
Alle Lösungen, auf die ich gestoßen bin, verwenden jedoch entweder disk2vhd
den dd
Befehl unter Linux, der eine vollständige Kopie der Festplatte (dh sogar leere Blöcke) erstellt und keine VHD-Datei ausgibt. Gibt es ein Tool / Programm unter Linux, das direkt eine VHD-Datei erstellen kann? Oder ist es möglich, ein mit dd erstelltes Raw-Disk-Image in eine VHD-Datei zu konvertieren, ohne Platz für die leeren Blöcke zu reservieren? Wie würden Sie vorgehen?
Wie immer wird jeder Rat oder Kommentar sehr geschätzt !!
Antworten:
Zum späteren Nachschlagen, hier ist, wie ich schließlich vorging, mit ein paar Kommentaren zu den verschiedenen Problemen oder Fallstricken:
1. Booten Sie den Computer mit einem Linux Live-System
Der erste Schritt bestand darin, den Computer mit der Festplatte unter Verwendung eines Linux-Live-Systems als Image zu starten.
2. Erstellen Sie ein Image der Festplatte
dd
und leiten Sie die Daten weiterssh
Dann kopierte ich den gesamten Festplatteninhalt in ein Dateibild auf meinem lokalen Server
dd
und leitete die Daten weiter durchssh
:Ein paar Kommentare hier: Diese Methode liest den gesamten Inhalt der Festplatte, so dass es sehr lange dauern kann (es dauerte 5 Stunden für eine 80-GB-Festplatte). Der Engpass ist nicht das Netzwerk, sondern die Lesegeschwindigkeit. Vor dem Starten der Kopie empfehle ich, die BIOS- / Festplatten- / Systemparameter zu überprüfen, um sicherzustellen, dass die Festplatte und das Motherboard mit der höchstmöglichen Geschwindigkeit arbeiten (dies kann mit dem Befehl
hdparm -i
und durch Ausführen eines Tests mit überprüft werdenhdparm -Tt /dev/hdX
).HINWEIS: Es
dd
wird kein Fortschritt der Operation ausgegeben, dies kann jedoch erzwungen werden, indem das USR1- Signaldd
von einem anderen Terminal an die Prozess-PID gesendet wird :3. Fordern Sie den nicht verwendeten Speicherplatz zurück
Ab diesem Zeitpunkt wird der Quellcomputer nicht mehr benötigt und wir arbeiten ausschließlich auf dem Zielserver (auch unter Linux). VirtualBox wird verwendet, um das Raw-Image der Festplatte in das VHD-Format zu konvertieren. Zuvor können wir jedoch die nicht verwendeten Blöcke auf Null setzen, sodass VirtualBox ihnen in der endgültigen Datei keinen Speicherplatz zuweist.
Dazu habe ich die Images als Loopback-Gerät gemountet:
ANMERKUNG: Der Versatz, der den Beginn der Partition innerhalb des Festplattenabbilds angibt, kann mithilfe
parted
der folgenden Abbilddatei ermittelt werden:HINWEIS 2: Der standardmäßige Linux-Kernel-NTFS-Treiber bietet nur Lesezugriff. Daher muss der Userspace-
ntfs-3g
Treiber installiert und verwendet werden. Andernfalls führt das Schreiben auf die Festplatte zu einem Fehler.4. Erstellen Sie das VHD-Image mit VBoxManage
Zu diesem Zeitpunkt können wir die VirtualBox-Dienstprogramme verwenden, um das Rohbild in eine VHD-Datei zu konvertieren:
quelle
vdfuse
oder zu mountenqemu-nbd
oder es in eine .img-Datei zu konvertieren (weitere Informationen: askubuntu.com/questions/19430/… )bs=4M
den Prozess erheblich zu beschleunigen.Ich habe versucht, genau das Gleiche wie das OP zu tun (während ich eine Windows - Installation rettete) und schließlich ein neues Tool dafür erstellt
ntfsclone2vhd
.Sie würden dann einfach so etwas tun:
quelle
make
ich Kopien von Linux haben muss), die ich in vielen Stunden der Suche gefunden habe. Bravo für die Initiative Yirkha!Ein Ansatz besteht darin, einige nützliche Technologien zu verwenden: VirtualBox und das
ntfsprogs
Paket.Neuere Versionen von VirtualBox ermöglichen das Erstellen von VHD-Festplattendateien, während
ntfsprogs
dasntfsclone
Dienstprogramm bereitgestellt wird. Wie der Name schon sagt, werdenntfsclone
NTFS-Dateisysteme geklont, und ich glaube, dass dies auf Dateisystemebene geschieht, wobei nicht verwendete Festplattenblöcke übersprungen werden.Erstellen Sie zunächst eine neue VM in VirtualBox und stellen Sie ein neues, leeres VHD-Dateilaufwerk bereit. Das VHD-Laufwerk muss nur so groß sein wie die Datenmenge, die auf dem physischen Laufwerk verwendet wird, das Sie klonen möchten.
Suchen Sie als Nächstes eine Linux-Live-CD, die das
ntfsprogs
Paket sowie enthältopenssh-server
. Ich mag die System Rescue-CD dafür, aber so ziemlich jede Debian- oder Ubuntu-basierte Live-CD sollte auch funktionieren.Booten Sie die VirtualBox-VM mit der Linux-Live-CD und starten
sshd
Sie sie, damit Sie Befehle remote ausführen können. Partitionieren Sie das leere VHD-Laufwerk mit dem von Ihnen bevorzugten Partitionierungswerkzeug (ich mag es einfach altfdisk
, aber ich bin ein bisschen altmodisch ).Starten Sie mit einer anderen Kopie der Linux-Live-CD den Computer mit der physischen Festplatte, die Sie klonen möchten. Ich gehe davon aus, dass die VirtualBox VM und dieser Computer über das Netzwerk miteinander verbunden sind. Führen Sie auf diesem Computer den folgenden Befehl aus (alle in einer Zeile):
woher:
/dev/sdXX
ist der Gerätename (auf dem lokalen Computer) des physischen Laufwerks, das Sie klonen möchten, und/dev/sdYY
ist der Gerätename (in der VM) des VHD-Ziellaufwerks.Erläuterung: Der erste
ntfsclone
Befehl in der Pipeline extrahiert ein Image des NTFS-Quelldateisystems und sendet es über den SSH-Tunnel. Der zweitentfsclone
Befehl empfängt das Image und stellt es auf dem VHD-Laufwerk wieder her.Sobald der Vorgang abgeschlossen ist, sollte die VHD-Datei einen datei-genauen Klon der ursprünglichen physischen Festplatte enthalten (mit Ausnahme von Hardwarefehlern wie fehlerhaften Sektoren, die dazu führen können, dass der Vorgang vorzeitig abgebrochen wird).
Eine letzte Sache, die Sie vielleicht tun möchten, ist, ein Windows
chkdsk
auf dem VHD-Laufwerk auszuführen , um sicherzustellen, dass das Klonen keine Probleme mit sich bringt (das sollte es nicht sein, aber hey, ich bin ein bisschen paranoid in diesen Dingen).quelle
(Ich weiß, dass dies ein alter Beitrag ist, aber vielleicht hilft das zumindest anderen.)
Müssen Sie das Image wirklich unter Linux erstellen können? Ich denke, Sie versuchen, Windows-Festplatten auf VHD zu sichern. Ich glaube nicht, dass Linux-Dateisysteme in einem VHD-Container gekapselt werden können.
Ein kostenloses SysInternals- Dienstprogramm namens Disk2vhd erstellt virtuelle Laufwerke des derzeit unter Windows XP oder einem neueren System. Dies sollte auch für das Imaging von USB-Laufwerken funktionieren.
quelle
Ich versuche kürzlich auch, ein Live-Linux-System zu klonen.
Immer noch keine perfekten Lösungen. Schlagen Sie zwei Möglichkeiten vor, die Sie ausprobieren können:
(1) VMware vConverter (kostenlos)
Sie müssen vsphere hypervisor (kostenlos) als Ziel installieren.
Ich habe in diesen Tagen kein Glück gehabt, Erfolg zu haben. Ich schätze, ich installiere vSphere auf einer VirtualBox.
Siehe hier: http://xrubenx.blogspot.com.au/2010/01/vmware-converter-standalone.html
(2) Verwenden Sie diese http://www.r1soft.com/tools/linux-hot-copy/
Ich werde R1Soft Hotcopy an diesem Wochenende ausprobieren.
quelle
Sie können auch eine Live-CD mit Windows verwenden. Es ist nicht offiziell von Microsoft, funktioniert aber. Sie können es auf eine CD oder ein USB-Laufwerk legen.
quelle