windows equivalent for dd

36

Eu preciso ler e escrever várias imagens de cartão flash. A maneira que eu sempre fiz isso no linux foi com o dd, e isso funcionou. O que é um bom equivalente no Windows?

Simplificando, eu preciso ser capaz de ler um cartão inteiro em um arquivo e vice-versa. Eu tentei WinDD , mas isso parece funcionar em partições, em vez de dispositivos inteiros, mas eu preciso ser capaz de despejar o disco inteiro / card e sua tabela de partições, independentemente de seu conteúdo.

Usando o Windows 7 de 64 bits, com o leitor de cartão em uma porta USB3.

    
por Jarmund 13.11.2014 / 10:52

7 respostas

18

Tente Win32DiskImager , ele pode gravar imagens em discos.

    
por 13.11.2014 / 19:46
15

Use apenas dd para Windows ... ele funciona perfeitamente, embora seja um projeto bastante antigo.

    
por 13.11.2014 / 11:07
9

Rufus funciona como esperado. Escolha 'DD Image' para 'Criar disco inicializável usando'.

A fonte é publicada no GitHub: link .

Minha experiência: o Win32DiskImager não detectou o u-SD através de um leitor USB-3; dd para Windows, MinGW compilado dd, Unix Utils dd e Linux dd VIA VirtualBox VM USB pass-through eram todos inaceitavelmente lentos; Eu ainda tenho que encontrar um equivalente de linha de comando do Windows que pode bater a velocidade de gravação de 50MB / s que estou vendo com Rufus.

    
por 11.04.2017 / 21:33
7

Eu estava apenas tentando verificar se uma unidade foi apagada, então tudo que me importava era ler, mas esse script python poderia ser modificado para fazer algo assim se você não confiar nesses executáveis como eu não fiz. Abra o Windows Partition Manager para obter o número de unidade da unidade de que você gosta e altere apenas 2 para esse número. Você pode então escrever isso, ou se você fez wb ao invés de rb você poderia escrever. Boa sorte

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')
    
por 29.03.2017 / 21:19
5

Primeiro eu também tentei o Win32DiskImager, que eu pensei estar fazendo apenas uma cópia de partição baseada em sua tela (não, ele pode fazer backup de todo um cartão SD), então continuei pesquisando.

Meu favorito atual é HDDRawCopy . Ele copia de / para o arquivo uma imagem de disco inteira, mas não as partições separadamente. Ele cria imagens compatíveis ou compactadas em tempo real - não é tão eficiente quanto o 7zip (nem chega ao desempenho do ZIP), mas você não precisa tocar na imagem novamente.

    
por 22.09.2017 / 20:12
4

surpreso, ninguém mencionou os principais utilitários GNU para Windows , eu os uso há anos. eles são binários de 32 bits, mas aparentemente, exceto por less , eles ainda funcionam no Windows 7 64 -bits .

uso de exemplo:

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

os tempos relatados são um pouco estranhos, mas por outro lado parece funcionar bem.

    
por 10.02.2018 / 07:37
2

ParaumequivalenteverdadeirodeddnoWindows,nãoprocureporalternativasincompletas-bastainstalaroverdadeiro%GNUdd.Amelhormaneiradefazerissoéprovavelmenteo Cygwin , uma distribuição bastante completa do GNU e outras ferramentas FOSS. Pense nisso como instalar o "Linux" (ou melhor, uma distribuição Linux (GNU)) sobre o Windows, sem camadas de emulação ou uma caixa preta limitada como o Windows Subsystem for Linux. É tão nativo quanto é possível.

Para usá-lo, você precisará:

  1. Instale um ambiente básico do Cygwin. Faça isso conforme as instruções no site , apenas deixe os padrões se precisar apenas de dd - mas você também pode se divertir e obter uma dica sobre o que tem para oferecer.
  2. Abra o terminal do Cygwin como administrador e, em seguida, verifique com qual dispositivo / partição você deseja trabalhar com cat /proc/partitions .
  3. Use dd como você faria em qualquer Linux (GNU).
por 14.04.2018 / 20:44