Verwenden des DD-Befehls zum Kopieren von VHD-Dateien auf eine physische Festplatte

VHD-Dateien (Virtual Hard Disk) sind riesige Dateien, die die Verwendung physischer Medien auf VirtualBox und einigen anderen virtuellen x86 / x86_64-Emulatoren emulieren. Auf diese Weise können Sie Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS / 2 oder sogar andere Linux-Versionen in Ihrer Linux-Distribution ausführen. Mit diesen Dateien können Sie ihren Inhalt nicht direkt über den Befehl dd auf eine physische Festplatte schreiben, mit dem Sie dasselbe mit einer ISO tun können, aber es gibt eine Möglichkeit, dies zu tun. Während in einigen Handbüchern die Konvertierung der VHD-Datei in eine ISO erforderlich ist, müssen Sie dies nicht tun, wenn Sie VirtualBox unter einer modernen Linux-Version ausführen. QEMU-Benutzer haben auch einen Ausweg, obwohl sie mehr herumspielen müssen.

Sie müssen sicherstellen, dass keines der Laufwerke oder Partitionen, mit denen Sie arbeiten, das ist, von dem Sie booten. In diesem Beispiel haben wir nur einen partitionierten NAND-Speicher verwendet. Möglicherweise möchten Sie jedoch eine Live-DVD oder einen USB-Start verwenden, wenn Sie dies sonst nicht könnten. Unabhängig davon, auf welche Weise Sie den betreffenden Computer gestartet haben, starten Sie Ihr Terminalprogramm, indem Sie entweder Strg, Alt und T gedrückt halten, im Ubuntu Dash danach suchen oder es über die Untermenüs der Systemprogramme in Xfce4 oder LXDE öffnen.

Methode 1: Verwenden von VBoxManage über die Eingabeaufforderung

Der mit Abstand einfachste Weg, dies zu tun, ist die Verwendung einer herkömmlichen VirtualBox-Installation. Stellen Sie zunächst sicher, dass Sie alle Daten gesichert haben, die Sie verlieren möchten, da Sie alle Daten auf der physischen Hardware des Ziels zerstören, während Sie möglicherweise auch etwas mit der VHD- oder VHDX-Datei tun. Dies gilt auch für die andere Methode sowie für alle Befehle, die so destruktiv sind.

Wenn Sie sicher sind, dass alles sicher ist und das Ziellaufwerk nicht gemountet, aber noch an den Computer angeschlossen ist, sagen Sie eine externe Festplatte, die Sie noch angeschlossen, aber nicht gemountet haben oder möglicherweise sogar roh sind, da Sie alles darauf verlieren Führen Sie dabei aus VBoxManage clonehd freeBSD.VHDX – Format RAW freeBSD.RAW während Sie freeBSD.VHDX durch Ihre virtuelle Festplatte ersetzen. Wir hatten eine virtuelle Festplattendatei mit einer etwas moderaten Installation von FreeBSD zu Testzwecken, daher der Name.

Sobald dieser Befehl beendet ist, führen Sie ihn aus sudo dd if = freeBSD.RAW von = / dev / sdeErsetzen Sie den Namen der RAW-Datei durch die gerade erstellte RAW und das SDE-Block-Gerät durch das Gerät, an dem Sie tatsächlich interessiert sind. Wenn Sie sich nicht sicher sind, können Sie es jederzeit ausführen sudo fdisk -l um sicherzustellen, dass Sie den richtigen Partitionsnamen kennen. Genau wie bei der Verwendung von dd für andere Zwecke möchten Sie nicht auf das falsche Gerät schreiben.

Möglicherweise wird eine Fehlermeldung angezeigt, dass auf dem Gerät kein Speicherplatz mehr vorhanden ist, genau wie beim Versuch, eine große Datei auf ein kleineres Gerät zu schreiben. Dies führte jedoch bei Tests nicht zu Problemen. Es scheint, dass dieser Prozess zusätzliche Nullen hinzufügt. Andernfalls konnten Sie die virtuelle Festplatte in nur zwei Schritten mit einem Minimum an herumalbern auf eine physische Festplatte kopieren.

Methode 2: Mit dem Befehl QEMU Disk Network Block Device Server

Benutzer, die nur Zugriff auf das QEMU-Virtualisierungssystem (Quick Emulator) haben, müssen sich mit einem etwas aufwändigeren Verfahren befassen als Benutzer, die Zugriff auf den Befehl VBoxManage haben. Führen Sie an der Eingabeaufforderung aus sudo modprobe nbd gefolgt von qemu-nbd -r -c / dev / ndb0 -f vpc ourTest.vhd, wobei der Dateiname geändert wurde, um den tatsächlichen Dateinamen wiederzugeben, mit dem Sie arbeiten. Je nachdem, wie Sie Ihre Installation konfiguriert haben, benötigen Sie möglicherweise sudo, um qemu-nbd auszuführen. Wenn Sie die Befehle von hier kopieren und einfügen, müssen Sie sie ändern, bevor Sie sie ausführen. In den meisten Fällen müssen Sie sich hier nur um das ndb0-Gerät kümmern, sodass Sie dort keine Probleme haben sollten.

Sobald dies erledigt ist, können Sie die Partition mit schreiben qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd gefolgt von sudo ddrescure -v -f / dev / nbd2 / dev / sde2Denken Sie jedoch daran, die Gerätedateien durch diejenigen zu ersetzen, an denen Sie tatsächlich interessiert sind. Wenn Sie diese kopieren und in Ihr eigenes Terminal einfügen, müssen Sie diese Dateinamen und Partitionsnummern durch diejenigen ersetzen, in die Sie schreiben möchten. Unser / dev / sde-Gerät war lediglich eine gebrauchte SDHC-Karte, mit der wir dies sicher getestet haben, ohne etwas zu beschädigen. Möglicherweise benötigen Sie sudo, um qemu-nbd auszuführen, aber Sie sollten es nicht benötigen. Ebenso müssen Sie möglicherweise die Partitionsnummern abhängig von Ihrer Konfiguration löschen. Der QEMU-Prozess ist aus diesen Gründen bei weitem nicht so intuitiv.

Hyper-V-Benutzer haben möglicherweise ein VHDX-Image anstelle einer VHD-Datei. Wenn dies der Fall ist, müssen Sie stattdessen ausführen qemu-nbd -c / dev / nbd0 -f VHDX ourTest.vhd während Sie den Dateinamen erneut ersetzen. Während dieses Format eine Ergänzung zu Windows Server 2012 war, um virtualisierten Maschinen eine größere Speicherkapazität hinzuzufügen, wenden sich immer mehr Linux-Benutzer diesem Format zu, um die 2-TB-Grenze von VHD zu umgehen. Andernfalls sollten diese Anweisungen unabhängig von der tatsächlichen Dateigröße funktionieren. Das GNU ddrescue-Tool sollte wie dd funktionieren, stellt jedoch sicher, dass zuerst die besten Blöcke kopiert werden.

Sobald dies ausgeführt wird, müssen Benutzer, die mit VHDX-Images arbeiten, ausgeführt werden sudo ddrescue -v -f / dev / nbd2 / dev / sde2Ersetzen Sie erneut die oben genannten Dateien. Andernfalls kann jeder mit allen Arten von VirtualBox-Images verwenden qemu-nbd -P 2 -r -c / dev / nbd2 -f vpc ourTest.vhd um die betreffende Partition so zu mounten, als wäre es eine alte Festplatte. Sie müssen verwenden sudo mount / dev / nbd2 / cdrom oder sudo mount / dev / nbd2 / mnt um es zu montieren. Stellen Sie sicher, dass nichts anderes in die Verzeichnisse / cdrom oder / mnt eingehängt ist, bevor Sie es versuchen.

Methode 3: Aufheben der Bereitstellung und anschließende Trennung der Datei

Um das Bild zu entfernen, müssen Sie es nur verwenden sudo umount / mnt oder sudo umount / cdrom um es zu lösen. Der Linux-Kernel selbst war schließlich damit beschäftigt, ihn so zu behandeln, als wäre er ein anderes Volume.

Sie müssen es dennoch vom QEMU-System trennen. Geben Sie also ein qemu-ndb -d / dev / nbd2 um es zu trennen.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *