Windows equivalente per dd


40

Devo leggere e scrivere varie immagini di schede flash. Il modo in cui l'ho sempre fatto in Linux era con dd, e questo ha funzionato. Che cosa è un buon equivalente di Windows?

In poche parole, devo essere in grado di leggere un'intera carta in un file e viceversa. Ho provato WinDD , ma sembra funzionare su partizioni anziché su interi dispositivi, ma devo essere in grado di scaricare l'intero disco / scheda e la sua tabella delle partizioni indipendentemente dal suo contenuto.

Utilizzando Windows 7 a 64 bit, con il lettore di schede su una porta USB3.

Risposte:


20

Prova Win32DiskImager , può scrivere immagini su dischi.


5
È ospitato su SourceForge, che ha una storia di inclusione di malware nelle distribuzioni, contro i desideri dei proprietari del progetto. Fonte: notepad-plus-plus.org/news/notepad-plus-plus-leaves-sf.html
Scott Stevens

4
@AnthonyLozano Ho scaricato win32diskimager da sourceforge, non ha malware ed è ampiamente usato e persino consigliato per cose come il Raspberry Pi in cui scrivere immagini del disco. C'è un fork su github ma devi compilarlo tu stesso github.com/bizplay/win32-disk-imager
Logern

2
Ho iniziato a usare Chocolatey per tutte le mie utility. Pensa a apt-get per Windows usando il framework NuGet. C'è un pacchetto win32diskimager lì che si installa senza problemi. Anche portatile. chocolatey.org
Mike Loux,

4
Questo non funziona per i dispositivi senza lettere di partizione assegnate a loro, quindi è inutile per i dispositivi con partizioni non riconosciute o nessuna partizione. Non equivalente a dd.
Xerz,

1
Non crea un file immagine compatibile con dd, infatti cerca di capire il layout del disco e produce un file zip con ogni partizione che riconosce in un file separato. E nel mio caso ha avuto problemi a ripristinare nuovamente i file su partizioni
user230910

20

Usa dd per Windows ... funziona perfettamente anche se è un progetto piuttosto vecchio.


Sembra avere un problema con Windows 10. Qualcuno ha problemi con .6 beta 3?
TravisWidden

@TravisWidden Che tipo di problemi? Ho riscontrato alcuni errori "incapace di scrivere", ma non sono sicuro che sia lo stesso problema.
Scott Stevens,

Non funziona per me sulla mia macchina Win7
Aaron

Questo sembra funzionare, ma sembra slooooow ...
user230910

Grazie, ha funzionato benissimo per me.
Jesse Busman,

14

Rufus funziona come previsto. Scegli "Immagine DD" per "Crea disco di avvio utilizzando".

La fonte è pubblicata su GitHub: https://github.com/pbatard/rufus .

La mia esperienza: Win32DiskImager non ha rilevato u-SD tramite un lettore USB-3; dd per Windows, MinGW compilato dd, Unix Utils dd e Linux dd VIA VirtualBox VM USB3 pass-through erano tutti inaccettabilmente lenti; Devo ancora trovare un equivalente della riga di comando di Windows in grado di battere la velocità di scrittura di 50 MB / s che sto vedendo con Rufus.


Anche il mio voto per Rufus. Nessuna delle altre risposte proposte ha funzionato per me su Windows 10 Pro v1703. Va bene ... siamo sinceri ... Non ho provato la soluzione Python.
Doug Wilson,

3
È davvero buono per precaricare le immagini su chiavette USB, ma non fa la metà di ciò che può fare dd, quindi non è davvero "equivalente"
Rolf

3
Questo non è valido in quanto consente solo di scrivere immagini su dischi, non di leggere quei dischi.
Xerz,

2
Rufus ha prodotto un disco con checksum diverso dall'immagine, per me.
fuzzy:

1
È raro vedere un'applicazione utile oggi che ha solo 1 MB di dimensione. Che grande strumento!
Gareth Davidson,

9

Per prima cosa ho anche provato Win32DiskImager, che pensavo stesse facendo solo una copia della partizione basata sul suo display (no, può fare il backup di un'intera scheda SD), quindi ho continuato la ricerca.

Il mio preferito attuale è HDDRawCopy . Copia in / da un file un'immagine dell'intero disco, ma non le partizioni separatamente. Crea immagini dd compatibili o compresse al volo - non efficienti come 7zip (non raggiunge nemmeno le prestazioni ZIP) ma non è necessario toccare nuovamente l'immagine.


2
HDD Raw Copy è stato in grado di rilevare un'unità SCSI vuota che "dd per windows" non ha potuto. Mi ha permesso di duplicare un disco HFS da Windows! Grazie!
HackSlash,

2
Si noti che per qualche motivo la COPIA RAZZA HDD ha un limite di 50 MB / s
Gizmo

9

sorpreso che nessuno abbia menzionato utility GNU per Windows , le uso da anni. sono binari a 32 bit ma a quanto pare, tranne less, funzionano ancora con Windows 7 a 64 bit .

esempio di utilizzo:

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

i tempi riportati sono un po 'strani ma per il resto sembra funzionare bene.


1
Copia correttamente il contenuto su 4 gibibyte? L'ultima volta che ho controllato (molto tempo fa) è stato compilato contro il runtime di Microsoft dove off_tè un long, quindi gli offset sono limitati a 31 o 32 bit ... che è un grande inganno quando si utilizza dd.
AntoineL,

Non ci ho mai provato, scusa.
jcomeau_ictx,

Git per Windows arriva (al momento della scrittura) con la versione 8.30 di dd, compilata nel 2018. Sembra funzionare bene con i /dev/sdXnomi, almeno da Git Bash in esecuzione come amministratore. Probabilmente ha perso qualche limite a 32 bit qualche tempo fa.
mwfearnley,

8

Stavo solo cercando di verificare che un'unità fosse stata cancellata, quindi tutto ciò che mi interessava era leggere, ma questo script Python poteva essere modificato per fare qualcosa del genere se non ti fidi di quegli eseguibili come non ho fatto io. Apri Gestione partizioni di Windows per sapere qual è il numero di unità che ti interessa e cambia semplicemente quel 2 con quel numero. Puoi quindi scriverlo, o se hai fatto wb invece di rb potresti scrivere. In bocca al lupo

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')

3
Solo per la cronaca, penso che sarebbe molto più veloce fare più di un byte alla volta. E non vi è alcuna condizione di errore, lo script si basa su byte non nulli che si verificano all'inizio e si nota che è stato stampato "fatto" all'inizio.
Luc,

2
Come fai a sapere quale unità di destinazione?
HackSlash,

Python è lo strumento sbagliato un circuito stretto come quello. Faresti meglio a creare un buffer di 256k di tutti gli zeri e confrontarlo con 256k estratti dal disco in una volta sola. In più con una certa gestione delle eccezioni.
Gareth Davidson,

3

Per un vero equivalente di ddsu Windows, non cercare alternative semi-cotte, basta installare la GNU reale dd. Il modo migliore per farlo è probabilmente Cygwin , una distribuzione abbastanza completa di GNU e altri strumenti FOSS. Pensa a come installare "Linux" (o meglio una distribuzione (GNU) Linux) su Windows, senza livelli di emulazione o una scatola nera limitata come il sottosistema Windows per Linux. È nativo come si arriva.

Per poterlo utilizzare, devi:

  1. Installa un ambiente Cygwin di base. Fallo come indicato sul sito Web , lascia le impostazioni predefinite se ne hai solo bisogno dd, ma puoi anche divertirti e ottenere un suggerimento su ciò che ha da offrire.
  2. Apri il terminale Cygwin come amministratore , quindi controlla su quale dispositivo / partizione vuoi lavorare cat /proc/partitions.
  3. Usa ddcome faresti su qualsiasi (GNU) Linux.

puoi persino usare cygwin dal prompt dei comandi di DOS ... (lo uso sempre per cat / grep / tail / ...) e anche nella console DOS / Windows "ls -la / proc" funziona bene ... uno dei miei favoriti ...
ZEE,

3

wow tutte quelle risposte e DISM è in circolazione da quanto tempo? abbastanza sicuro che è stato integrato in Windows 7 fin dall'inizio.

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

ci sono molte impostazioni che puoi modificare. dopo l'acquisizione: distribuire su nuovi supporti di archiviazione utilizzando anche gli strumenti dism.



Non funziona: The /image-file option is not recognized in this context.. Dovrebbe essere/imagefile
yahol

1

Dopo aver provato alcuni degli strumenti consigliati qui, ho finito per usare Balena Etcher su Windows 10. (Rufus mi ha dato un risultato con un checksum errato. HDDRawCopy mi ha dato un errore di scrittura.)


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.