Windows-Äquivalent für dd

40

Ich muss verschiedene Flashkartenbilder lesen und schreiben. Die Art und Weise, wie ich das unter Linux immer gemacht habe, war mit dd, und das hat den Trick gemacht. Was ist ein gutes Windows-Äquivalent?

Einfach ausgedrückt, ich muss in der Lage sein, eine ganze Karte in eine Datei einzulesen und umgekehrt. Ich habe WinDD ausprobiert , aber das scheint auf Partitionen statt auf ganzen Geräten zu funktionieren, aber ich muss in der Lage sein, die gesamte Festplatte / Karte und ihre Partitionstabelle unabhängig von ihrem Inhalt zu sichern .

Unter Windows 7 64-Bit mit dem Kartenleser an einem USB3-Anschluss.

Jarmund
quelle

Antworten:

20

Versuchen Sie Win32DiskImager , es kann Bilder auf Datenträger schreiben.

Logern
quelle
5
Es wird auf SourceForge gehostet, das in der Vergangenheit gegen den Willen der Projektinhaber Malware in Distributionen aufgenommen hat. Quelle: notepad-plus-plus.org/news/notepad-plus-plus-leaves-sf.html
Scott Stevens
3
@AnthonyLozano Ich habe win32diskimager von sourceforge heruntergeladen, es hat keine Malware und es ist weit verbreitet und wird sogar für Dinge wie den Raspberry Pi empfohlen, auf die Disk-Images geschrieben werden können. Es gibt eine Gabel auf Github , aber Sie haben es selbst zu kompilieren github.com/bizplay/win32-disk-imager
Logern
2
Ich habe begonnen, Chocolatey für alle meine Dienstprogramme zu verwenden. Denken Sie mit NuGets Framework an apt-get für Windows. Dort befindet sich ein win32diskimager-Paket, das problemlos installiert werden kann. Auch tragbar. chocolatey.org
Mike Loux
4
Dies funktioniert nicht für Geräte ohne zugewiesene Partitionsbuchstaben, daher ist es für Geräte mit nicht erkannten Partitionen oder ohne Partitionen nutzlos. Kein Äquivalent zu dd.
Xerz
1
Es wird keine dd-kompatible Image-Datei erstellt. Tatsächlich wird versucht, das Festplattenlayout zu verstehen, und es wird eine ZIP-Datei mit jeder erkannten Partition in einer separaten Datei erstellt. Und in meinem Fall hatte es Probleme, die Dateien wieder auf Partitionen wiederherzustellen
user230910 16.10.18
20

Verwenden Sie einfach dd für Windows ... es funktioniert perfekt, obwohl es ein ziemlich altes Projekt ist.

Eugen Rieck
quelle
Scheint ein Problem unter Windows 10 zu haben. Hat jemand Probleme mit .6 Beta 3?
TravisWhidden
@ TravisWhidden welche Art von Problemen? Ich habe einige "Schreiben nicht möglich" -Fehler festgestellt, bin mir aber nicht sicher, ob dies dasselbe Problem ist.
Scott Stevens
Es funktioniert nicht für mich auf meinem Win7-Rechner
Aaron
Dies scheint zu funktionieren, aber es scheint slooooow ...
user230910
Vielen Dank, es hat großartig für mich funktioniert.
Jesse Busman
14

Rufus arbeitet wie erwartet. Wählen Sie "DD-Image" für "Boot-Diskette erstellen mit".

Die Quelle wird auf GitHub veröffentlicht: https://github.com/pbatard/rufus .

Meine Erfahrung: Win32DiskImager hat u-SD nicht über einen USB-3-Reader erkannt. dd für Windows, MinGW kompilierte dd, Unix Utils dd und Linux dd VIA VirtualBox VM USB3-Durchgang waren alle inakzeptabel langsam; Ich habe noch kein Windows-Befehlszeilenäquivalent gefunden, das die Schreibgeschwindigkeit von 50 MB / s, die ich mit Rufus sehe, übertreffen kann.

mstrthealias
quelle
Meine Stimme auch für Rufus. Keine der anderen vorgeschlagenen Antworten funktionierte für mich unter Windows 10 Pro v1703. Okay ... seien wir ehrlich ... ich habe die Python-Lösung nicht ausprobiert.
Doug Wilson
3
Es ist wirklich gut, um Bilder auf USB-Sticks vorzuladen, aber es macht nicht die Hälfte von dem, was dd kann, also ist es nicht wirklich "gleichwertig"
Rolf
3
Dies ist nicht gültig, da hiermit nur Bilder auf Datenträger geschrieben werden können und diese nicht gelesen werden können.
Xerz
2
Rufus hat für mich eine Diskette mit einer anderen Prüfsumme als das Bild erstellt.
FuzzyTew
1
Heutzutage sieht man selten eine nützliche Anwendung, die nur 1 MB groß ist. Was für ein großartiges Werkzeug!
Gareth Davidson
9

überrascht, dass niemand GNU-Kern-Utils für Windows erwähnte , ich benutze sie seit Jahren. Sie sind 32-Bit-Binärdateien, aber anscheinend funktionierenless sie mit Ausnahme von Windows 7 64-Bit immer noch .

Beispielverwendung:

C:\Windows\Temp>dd if="\\.\s:" of=sdrive.dat bs=4096
25599+0 records in
25599+0 records out
104853504 bytes (105 MB) copied, 30.3147 seconds, -56145186608800624000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000 MB/s

C:\Windows\Temp>dd if="\\.\physicaldrive0" of=mbr.dat bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0210012 seconds, -891479495977528 kB/s

Die angegebenen Zeiten sind etwas merkwürdig, aber ansonsten scheint es gut zu funktionieren.

jcomeau_ictx
quelle
1
Kopiert es korrekt Inhalte über 4 Gibibyte? Das letzte Mal, als ich (vor langer Zeit) nachgesehen habe, wurde es mit der Laufzeit von Microsoft kompiliert, in der a angegeben off_tist long. Daher sind Offsets auf 31 oder 32 Bit beschränkt. Dies ist eine große Täuschung bei der Verwendung dd.
AntoineL
Ich habe es nie versucht, sorry.
jcomeau_ictx
Git für Windows wird (zum Zeitpunkt des Schreibens) mit der dd-Version 8.30 ausgeliefert, die 2018 kompiliert wurde. Es scheint gut mit /dev/sdXNamen zu funktionieren , zumindest von Git Bash, das als Administrator ausgeführt wird. Es hat wahrscheinlich vor einiger Zeit alle 32-Bit-Einschränkungen verloren.
Mwfearnley
8

Zuerst habe ich auch Win32DiskImager ausprobiert, bei dem ich dachte, es wird nur eine Partitionskopie basierend auf der Anzeige erstellt (nein, es kann eine gesamte SD-Karte sichern), also habe ich die Suche fortgesetzt.

Mein aktueller Favorit ist HDDRawCopy . Es kopiert ein gesamtes Disk-Image in / aus einer Datei, jedoch keine separaten Partitionen. Es erstellt dd-kompatible oder komprimierte Bilder im laufenden Betrieb - nicht so effizient wie 7zip (erreicht nicht einmal die ZIP-Leistung), aber Sie müssen das Bild nicht erneut berühren.

Andris
quelle
2
HDD Raw Copy konnte ein leeres SCSI-Laufwerk erkennen, das "dd for windows" nicht erkennen konnte. Es erlaubte mir, eine HFS-Festplatte von Windows zu duplizieren! Vielen Dank!
HackSlash
2
Beachten Sie, dass HDD RAW COPY aus irgendeinem Grund ein Limit von 50 MB / s hat
Gizmo
8

Ich habe nur versucht, zu überprüfen, ob ein Laufwerk gelöscht wurde, also habe ich mich nur um das Lesen gekümmert, aber dieses Python-Skript könnte so geändert werden, wenn Sie diesen ausführbaren Dateien nicht vertrauen, wie ich es nicht getan habe. Öffnen Sie den Windows Partition Manager, um die Laufwerksnummer des gewünschten Laufwerks zu ermitteln, und ändern Sie diese 2 einfach in diese Nummer. Sie können das dann ausschreiben, oder wenn Sie wb anstelle von rb getan haben, könnten Sie schreiben. Viel Glück

import sys

f = open('\\\\.\\PhysicalDrive2','rb')
a = f.read(1)
i = 1

kb = 1024
mb = kb*1024

while a == b'\x00':
    i+=1
    if i % mb == 0:
        sys.stdout.write('\r{} MB scanned'.format(i/mb))
    a = f.read(1)

print('done')
Jemand, der zu lange verbrachte
quelle
3
Nur zur Veranschaulichung, ich denke, es wäre um ein Vielfaches schneller, mehr als ein Byte gleichzeitig zu machen. Und es liegt keine Fehlerbedingung vor. Das Skript basiert auf früh auftretenden Nicht-Null-Bytes, und Sie stellen fest, dass es frühzeitig "erledigt" gedruckt wurde.
Luc
2
Woher weißt du, welches Laufwerk zum Ziel führt?
HackSlash
Python ist das falsche Werkzeug, eine enge Schleife wie diese. Es ist besser, einen 256-KB-Puffer mit allen Nullen zu erstellen und ihn mit 256 KB zu vergleichen, die in einem Durchgang von der Festplatte abgerufen wurden. Plus einige Ausnahmebehandlung.
Gareth Davidson
3

Wenn Sie ein echtes Äquivalent ddzu Windows suchen, suchen Sie nicht nach halbherzigen Alternativen - installieren Sie einfach die echte GNU dd. Der beste Weg, dies zu tun, ist wahrscheinlich Cygwin , eine ziemlich vollständige Distribution von GNU und anderen FOSS-Werkzeugen. Stellen Sie sich vor, Sie installieren "Linux" (oder besser gesagt eine (GNU-) Linux-Distribution) auf Windows, ohne Emulationsebenen oder eine eingeschränkte Blackbox wie das Windows-Subsystem für Linux. Es ist so einheimisch wie es nur geht.

Um es zu benutzen, müssen Sie:

  1. Installieren Sie eine grundlegende Cygwin-Umgebung. Lassen Sie die Standardeinstellungen wie auf der Website angegeben , wenn Sie sie benötigen. ddSie können aber auch Spaß haben und einen Hinweis auf die Angebote erhalten.
  2. Öffnen Sie das Cygwin-Terminal als Administrator und überprüfen Sie, mit welchem ​​Gerät / welcher Partition Sie arbeiten möchten cat /proc/partitions.
  3. Verwenden ddSie es wie auf jedem (GNU) Linux.
Xerz
quelle
Sie können sogar Cygwin von der DOS-Eingabeaufforderung aus verwenden ... (ich verwende die ganze Zeit für cat / grep / tail / ...) und sogar in der DOS / Windows-Konsole funktioniert "ls -la / proc" einwandfrei ... Einer meiner Favoriten ...
ZEE
3

wow all diese Antworten und DISM gibt es schon wie lange? Ich bin mir ziemlich sicher, dass es von Anfang an in Windows 7 eingebaut wurde.

DISM / capture-image /image-file:d:\backup.wim / captureir: c: \ / name: simpleback

Es gibt viele Einstellungen, die Sie anpassen können. Nach dem Aufnehmen: Stellen Sie das Gerät auch mit den Dism-Tools auf neuen Speichermedien bereit.

Jonathan Warren
quelle
Funktioniert nicht: The /image-file option is not recognized in this context.. Sollte sein/imagefile
yahol
1

Nachdem ich einige der hier empfohlenen Tools ausprobiert hatte, verwendete ich balena Etcher unter Windows 10. (Rufus gab mir ein Ergebnis mit einer falschen Prüfsumme. HDDRawCopy gab mir einen Schreibfehler.)

fuzzyTew
quelle
1

rawcopyvon http://www.ltr-data.se/opencode.html/ . rawcopy -hzeigt Handbuch.

Wenn Sie /dev/zeround benötigen /dev/random, gibt es "Zero and Random Device Driver" von derselben Site.

Fau
quelle