So erstellen Sie ein Image einer Festplatte ohne den nicht zugewiesenen Speicherplatz?

537
maxwhere

Ich muss diese Festplatte, die eine Windows-Installation enthält, in eine * .vdi-Datei konvertieren, um eine bootfähige * .img OHNE nicht zugewiesenen Speicherplatz zu erstellen.

diese HDD

Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT  /dev/sdb2 718848 105582591 104863744 50G 7 HPFS/NTFS/exFAT 

Bei Verwendung VBoxManage convertfromraw /dev/sdb2wird jedoch ein VDI mit dynamischer Größe erstellt, das jedoch maximal 223 GB nicht überschreitet. VBoxManage modifyhd --resizeGröße kann nicht reduziert werden, VBoxManage modifymedium --compactändert sich auch nicht. Das Schreiben von Nullen mit sdelete, wie es häufig vorgeschlagen wird, ist nicht anwendbar, da es nicht zugeordneten Speicherplatz gibt.

Die Verwendung der in diesem Thread unter Server Faultdd vorgeschlagenen Verwendung von zwei Images und deren späterer Kombination führt zu einem nicht startfähigen Image.

Wie kann man also den nicht zugewiesenen Speicherplatz der Quell-HDD ausschließen?

1
Haben Sie Platz, um ein ~ 50.35 GiB-Bild zu speichern? Wenn ja, können Sie `dd 'verwenden, um die ersten ~ 50,35 GiB der Platte abzubilden und daraus eine VDI zu erstellen. Sie müssen alle Daten vom Anfang der Platte bis zum Ende von Partition 2 mitnehmen ... dh: 105.582.591 Sektoren oder (normalerweise x512) 54.058.286.592 Bytes - `dd if = / dev / sdb von = image.dd bs = 4M count = 54058286592 iflag = count_bytes` Attie vor 6 Jahren 1
Vielen Dank für Ihre Hilfe! Ich dachte nicht daran, die Straße entlang zu fahren. Ihrem Vorschlag zufolge war das einzige Flag, das ich verwendet habe, count = 10582591, da durch die Einstellung des Blocksize-Parameters auf 4M die Größe des resultierenden Bildes verdoppelt wurde. Fühlen Sie sich frei, Ihren Beitrag als Antwort einzufügen und ich werde ihn als gelöst markieren. Prost. maxwhere vor 6 Jahren 2

1 Antwort auf die Frage

1
Attie

Da sich die Partitionen beide auf der Vorderseite der Festplatte befinden, können Sie diesen Teil der Festplatte einfach abbilden.

Versuchen Sie es mit dd:

dd if=/dev/sdb of=image.dd bs=4M count=54058286592 iflag=count_bytes 

Hier countist gleich der Anzahl der abzubildenden Bytes - Ende der Parition 2 × 512 (Größe eines Sektors).

Um dann eine größere Blockgröße zuzulassen (Übertragungsrate zu erhöhen), müssen Sie angeben, dass Ihr countArgument in " Bytes " und nicht " Eingabeblöcke " (wie es standardmäßig verwendet wird) ist - use iflag=count_bytes.