Windows equivalente para dd

40

Necesito leer y escribir varias imágenes de tarjetas flash. La forma en que siempre hice esto en Linux fue con dd, y eso funcionó. ¿Qué es un buen equivalente de Windows?

En pocas palabras, necesito poder leer una tarjeta completa en un archivo y viceversa. Intenté WinDD , pero parece funcionar en particiones en lugar de dispositivos completos, pero necesito poder volcar todo el disco / tarjeta y su tabla de particiones independientemente de su contenido.

Usando Windows 7 de 64 bits, con el lector de tarjetas en un puerto USB3.

Jarmund
fuente

Respuestas:

20

Pruebe Win32DiskImager , puede escribir imágenes en discos.

Logern
fuente
55
Está alojado en SourceForge, que tiene un historial de incluir malware en las distribuciones, en contra de los deseos de los propietarios del proyecto. Fuente: notepad-plus-plus.org/news/notepad-plus-plus-leaves-sf.html
Scott Stevens
44
@AnthonyLozano Descargué win32diskimager de sourceforge, no tiene ningún malware y es ampliamente utilizado e incluso recomendado para cosas como Raspberry Pi para escribir imágenes de disco. Hay una bifurcación en github pero debe compilarlo usted mismo github.com/bizplay/win32-disk-imager
Logern
2
He comenzado a usar Chocolatey para todas mis utilidades. Piense en apt-get para Windows utilizando el marco de NuGet. Hay un paquete win32diskimager que se instala sin problemas. Uno portátil, también. chocolatey.org
Mike Loux
44
Esto no funciona para dispositivos sin letras de partición asignadas, por lo tanto, es inútil para dispositivos con particiones no reconocidas o sin particiones. No es un equivalente a dd.
Xerz
1
No crea un archivo de imagen compatible con dd, de hecho, trata de comprender el diseño del disco y produce un archivo zip con cada partición que reconoce en un archivo separado. Y en mi caso, tuve problemas para restaurar los archivos nuevamente a las particiones
user230910
20

Simplemente use dd para Windows ... funciona perfectamente a pesar de que es un proyecto bastante antiguo.

Eugen Rieck
fuente
Parece tener un problema en Windows 10. ¿Alguien tiene problemas con .6 beta 3?
TravisWhidden
@TravisWhidden ¿qué tipo de problemas? He experimentado algunos errores de "incapaz de escribir", pero no estoy seguro si ese es el mismo problema.
Scott Stevens
No funciona para mí en mi máquina Win7
Aaron
Esto parece funcionar, pero parece lento ...
user230910
Gracias, funcionó muy bien para mí.
Jesse Busman
14

Rufus funciona como se esperaba. Elija 'Imagen DD' para 'Crear disco de arranque usando'.

La fuente se publica en GitHub: https://github.com/pbatard/rufus .

Mi experiencia: Win32DiskImager no detectó u-SD a través de un lector USB-3; dd para Windows, dd compilado MinGW, Unix Utils dd y Linux dd VIA VirtualBox VM USB3 el paso fue inaceptablemente lento; Todavía tengo que encontrar una línea de comandos equivalente de Windows que pueda superar las velocidades de escritura de 50 MB / s que estoy viendo con Rufus.

mstrtalias
fuente
Mi voto por Rufus también. Ninguna de las otras respuestas propuestas me funcionó en Windows 10 Pro v1703. Bien ... seamos honestos ... no probé la solución Python.
Doug Wilson
3
Es realmente bueno para precargar imágenes en memorias USB, pero no hace la mitad de lo que dd puede hacer, por lo que no es realmente "equivalente"
Rolf
3
Esto no es válido, ya que solo permite escribir imágenes en discos, no leer esos discos.
Xerz
2
Rufus produjo un disco con una suma de comprobación diferente de la imagen, para mí.
fuzzyTew
1
Es raro ver una aplicación útil hoy que solo tiene un tamaño de 1 MB. ¡Qué gran herramienta!
Gareth Davidson
9

Primero también probé Win32DiskImager, que pensé que solo estaba haciendo una copia de partición en función de su pantalla (no, puede hacer una copia de seguridad de una tarjeta SD completa), así que continué buscando.

Mi favorito actual es HDDRawCopy . Copia a / desde el archivo una imagen de disco completa, pero no las particiones por separado. Crea imágenes dd compatibles o comprimidas sobre la marcha, no tan eficiente como 7zip (ni siquiera alcanza el rendimiento ZIP) pero no necesita tocar la imagen nuevamente.

Andris
fuente
2
HDD Raw Copy pudo detectar una unidad SCSI en blanco que "dd for windows" no pudo detectar. ¡Me permitió duplicar un disco HFS de Windows! ¡Gracias!
HackSlash
2
Tenga en cuenta que por alguna razón HDD RAW COPY tiene un límite de 50 MB / s
Gizmo
9

sorprendido de que nadie haya mencionado las utilidades principales de GNU para Windows , las he estado usando durante años. son binarios de 32 bits, pero aparentemente, a excepción de less, todavía funcionan con Windows 7 de 64 bits .

ejemplo de uso:

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

los tiempos reportados son un poco extraños pero de lo contrario parece funcionar bien.

jcomeau_ictx
fuente
1
¿Copia correctamente el contenido de más de 4 gibibitas? La última vez que lo verifiqué (hace mucho tiempo) se compiló contra el tiempo de ejecución de Microsoft donde off_testá long, por lo tanto, las compensaciones están limitadas a 31 o 32 bits ... lo cual es un gran engaño cuando se usa dd.
AntoineL
Nunca lo intenté, lo siento.
jcomeau_ictx
Git para Windows viene (al momento de escribir) con la versión dd 8.30, compilada en 2018. Parece funcionar bien con los /dev/sdXnombres, al menos desde Git Bash ejecutándose como Administrador. Probablemente perdió alguna limitación de 32 bits hace algún tiempo.
mwfearnley
8

Solo estaba tratando de verificar que una unidad se borró, por lo que todo lo que me importaba era leer, pero este script de Python podría modificarse para hacer algo como esto si no confía en esos ejecutables como yo no lo hice. Abra Windows Partition Manager para obtener el número de unidad que le interesa y simplemente cambie ese 2 a ese número. Luego puede escribir eso, o si escribió wb en lugar de rb, podría escribir. Buena suerte

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')
alguien que pasó mucho tiempo
fuente
3
Solo para que conste, creo que sería mucho más rápido hacer más de un byte a la vez. Y no hay ninguna condición de error, el script se basa en bytes no nulos que ocurren al principio y usted detecta que imprimió "hecho" al principio.
Luc
2
¿Cómo sabes a qué unidad apuntar?
HackSlash
Python es la herramienta incorrecta, un circuito cerrado como ese. Sería mejor crear un búfer de 256k de todos los ceros y compararlo con 256k extraídos del disco de una vez. Además de tener un manejo excepcional.
Gareth Davidson
3

Para un verdadero equivalente de dden Windows, no busque alternativas a medias, solo instale el GNU real dd. La mejor manera de hacer esto es probablemente Cygwin , una distribución bastante completa de GNU y otras herramientas FOSS. Piense en ello como la instalación de "Linux" (o más bien, una distribución de Linux (GNU)) sobre Windows, sin ninguna capa de emulación o un cuadro negro limitado como el Subsistema de Windows para Linux. Es tan nativo como se pone.

Para usarlo, necesitarás:

  1. Instale un entorno básico de Cygwin. Hágalo como se indica en el sitio web , solo deje los valores predeterminados si solo lo necesita dd, pero también puede divertirse y obtener una pista de lo que tiene para ofrecer.
  2. Abra el terminal Cygwin como administrador , luego verifique con qué dispositivo / partición desea trabajar cat /proc/partitions.
  3. Úselo ddcomo lo haría en cualquier Linux (GNU).
Xerz
fuente
incluso puede usar cygwin desde el símbolo del sistema de DOS ... (uso todo el tiempo para cat / grep / tail / ...) e incluso en la consola de DOS / Windows "ls -la / proc" funciona bien ... uno de mis favoritos ...
ZEE
3

wow todas esas respuestas y DISM ha estado alrededor por cuánto tiempo? Estoy bastante seguro de que fue integrado en Windows 7 desde el principio.

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

Hay muchas configuraciones que puede modificar. después de la captura: despliegue a nuevos medios de almacenamiento utilizando también las herramientas de dism.

jonathan warren
fuente
No funciona: The /image-file option is not recognized in this context.. Debería ser/imagefile
Yahol
1

Después de probar algunas de las herramientas recomendadas aquí, terminé usando balena Etcher en Windows 10. (Rufus me dio un resultado con una suma de verificación incorrecta. HDDRawCopy me dio un error de escritura).

fuzzyTew
fuente