Abbild-Dateien von Speicherkarten oder CD/DVDs mit der Endung *.img kennt man beispielsweise von Installationsimages von Raspbian, pfSense und mehr. Um diese auf eine Speicherkarte oder ein anderes Medium zu schreiben gibt es einige Tools, aber was ist wenn man unter Windows selbst eine solche Datei erstellen möchte?

Je nach Ausgangslage sind ggf. verschiedene Punkte zu beachten, wie z.B.

  • Kommt auf dem Medium ein Dateisystem zum Einsatz das von Windows unterstützt wird?
  • Hat das Medium einen Laufwerksbuchstaben?

Als Beispiel dient hier eine 32 GB SSD auf dem ein Debian-Linux mit Xfce-Desktop installiert ist und die über einen USB-SATA-Adapter angeschlossen ist. Tatsächlich belegt sind nur zwischen 4 – 5 GB. Daraus ergibt sich, das ein von Windows nicht nativ unterstütztes Dateisystem verwendet wird und zudem die Partitionen keine Laufwerksbuchstaben haben. Nicht jedes Tool kann mit direkten Aufrufen eines Laufwerks wie

\\.\PhysicalDrive5

umgehen. Idealerweise kann ein Tool beides, also direkten Pfad als auch Laufwerksbuchstaben. Als nächstes muss man sich selbst die Frage stellen, ob man lieber mit der Eingabeaufforderung bzw. PowerShell arbeiten möchte oder ob es eine grafische Oberfläche sein soll. So oder so, es ist für jeden Fall etwas dabei.

dd (for Windows)

Unter den unixoiden Betriebssystemen erstellt man solche Abbilder für gewöhnlich mit dd. Der einfachste Aufruf sieht so aus:

dd if=/dev/sda of=/tmp/usb/backup.img

Das Image kann während der Erstellung auch gleich komprimiert werden:

dd if=/dev/sda | gzip -c -9 > /tmp/usb/backup.img.gz

dd gibt es auch für Windows, auf gzip muss man erstmal verzichten (sofern man es nicht selbst nachrüstet, siehe Update vom 25.02.2022 etwas weiter unten):

chrysocome.net – dd for windows

Der Aufruf in einer Eingabeaufforderung unter Windows sieht dann z.B. so aus:

dd if=\\?\Device\Harddisk5\Partition0 of=backup.img --progress

Die richtigen Pfade, wenn kein Laufwerksbuchstaben verwendet wird, kann man mit

dd --list

ermitteln. In diesem Beispiel wäre dies

\\?\Device\Harddisk5\Partition0

bzw.

\\?\Device\Harddisk5\DR10

Wie es unter PowerShell geht, findet sich z.B. hier:

Server Space – DD utility for Windows backup

Leider scheint dd for Windows in Sachen Performance von allen im Rahmen dieses Beitrags bzw. dieses Beispiels getesteten Tools am langsamsten zu sein. Für die eingangs erwähnte 32 GB SSD wurden vier Stunden benötigt.

Update 25.02.2022

Rüstet man Gzip for Windows nach, also man kopiert die gzip.exe in den gleichen Ordner in dem sich auch die dd.exe befindet, sehen die Befehle unter Windows in der Eingabeaufforderung so aus:

Abbild erstellen:

dd --progress if=\\?\Device\Harddisk5\Partition0 | gzip -c -9 > backup.img.gz

Abbild zurückspielen:

gzip -c -d -k backup.img.gz | dd of=\\?\Device\Harddisk5\Partition0 --progress

Win32 Disk Imager

Vielen bekannt ist der Win32 Disk Imager, ein kleines Tool, das entsprechende Dateien schreiben und erstellen kann. Allerdings funktioniert das Erstellen eines Abbilds nur, wenn die Speicherkarte o.ä. einen Laufwerksbuchstaben hat. Befindet sich nun ein von Windows nicht unterstütztes Dateisystem auf dem Quell-Medium hat man kein Glück.

Für das hier genannte Beispiel konnte Win32 Disk Imager nicht verwendet werden. Generell unerwähnt sollte und darf es allerdings auch nicht sein.

qemu-img (for Windows)

Ein weiteres aus der Linux-Welt bekanntes Tool, das es ebenfalls für Windows gibt ist qemu-img. Eigentlich ist dieses dazu gedacht, virtuelle Festplatten bzw. Images zu erstellen, zu konvertieren und Abbilder auf ein Medium zu schreiben. Dreht man allerdings beim Konvertierungsbefehl die Quelle und das Ziel um, kann man auch von einem Medium ein Abbild erzeugen:

qemu-img.exe convert -p -O raw \\.\PhysicalDrive5 backup.img

Im Gegensatz zu dd for Windows benötigte qemu-img nur 15 Minuten.

HDD Raw Copy

Ebenfalls ein alter bekannter ist HDD Raw Copy, das wahlweise unkomprimierte sowie komprimierte Abbilder erzeugen kann:

Für die Beispiel SSD wurden 16 Minuten benötigt.

Rufus

Rufus ist den meisten als Tool geläufig, um boot-fähige USB-Sticks zu erstellen. Neben dieser Haupteigenschaft kann man allerdings auch Abbilder erstellen. Als Ausgangsdatei erhält meine eine *.vhd, was letztlich ein 1:1-RAW-Abbild, also eine *.img, ist:

Um die eingangs erwähnte 32 GB SSD als Datei zu speichern benötigte Rufus exakt 15 Minuten.

Wie man eine *.vhd wieder auf ein Medium schreiben kann habe ich hier beschrieben:

Windows: VHD(X) auf physikalisches Laufwerk klonen

Drive Snapshot

Etwas off-topic, aber im Test ebenfalls interessant: Das Backup-Programm Drive Snapshot kann ebenfalls von verschiedenen Laufwerken und Dateisystemen (die nicht von Windows unterstützt werden) Images erstellen. Wahlweise komprimiert oder RAW, was man unter “Advanced Options” festlegen kann:

Das Ergebnis ist dank Komprimierung mit 894 MB sehr sehr kompakt. Die so erstellte Datei ist allerdings in einem proprietären Format. Von allen Tools war es zudem mit gerade mal 39 Sekunden das Schnellste. Dies liegt nicht zuletzt daran, das es nur die belegten Bereiche (sofern nicht RAW verwendet wird) sichert.

Etcher

Möchte man hingegen schlicht nur einen Klon von einem Medium auf ein anderes erstellen, bietet sich Etcher an:

Platz sparen

Nicht komprimierte Abbilder kann man nachträglich beispielsweise mit 7-Zip komprimieren und so in der Regel einiges an Speicherplatz einsparen.