Como usar o Cygwin para copiar uma imagem de um cartão de memória SD

30

Resumindo, estou trabalhando em uma máquina com Windows 7 e gostaria de remover a imagem de um cartão SD (fazendo backup do cartão de um Raspberry Pi ). Estou tentando usar o Cygwin , mas não tendo muito sucesso.

Examinando o diretório /dev , parece que meu cartão SD está sendo exibido como sdd e sdd1 . No entanto, quando eu executo o seguinte comando:

dd if=/dev/sdd of=RPi.img

Eu recebo o seguinte:

dd: opening '/dev/sdd': Permission denied

Eu usei dd em um Mac e no Linux sem nenhum problema, usando uma sintaxe semelhante. O que estou perdendo com o Cygwin?

    
por GrandAdmiral 10.04.2013 / 17:58

6 respostas

26

Você recebe o erro Permission denied , porque não é root . Isso soa estranho no contexto do Cygwin, mas chega em casa.

Quando você consulta seu status ( id ) em um shell Cygwin normalmente iniciado, você obtém algo assim:

$ id
uid=1001(user) gid=545(Users) groups=545(Users),555(Remote Desktop Users),513(None)
$ dd if=/dev/sda bs=1000 count=1 | wc -c
dd: opening '/dev/sda': Permission denied
0

No Windows 7, o truque para se tornar root no Cygwin é iniciar a sessão elevada , ou seja, clicar com o botão direito no ícone do Cygwin e escolher Executar como administrador . Agora você ainda não é root , mas pelo menos no grupo root :

$ id
uid=1001(user) gid=545(Users) groups=545(Users),0(root),544(Administrators),555(Remote Desktop Users),513(None)

E agora, dd funciona como você está acostumado com isso de Un * x:

$ dd if=/dev/sda bs=1000 count=1 | wc -c
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.00104424 s, 958 kB/s
1000
    
por 10.05.2013 / 21:22
10

Recentemente tive que clonar um drive USB para outro no Windows. Minha unidade é uma multi-inicialização com software adicional, então eu não queria copiar todos os arquivos no FS. DD foi uma escolha clara, mas eu não estava no Linux, então havia algumas coisas que eu tinha que fazer para que funcionasse.

Eu tinha o cygwin instalado e fiz o seguinte.

Primeiro eu tive que descobrir qual dispositivo / dev / sdX meu f: volume era. Para fazer isso, execute este comando no cygwin. (DICA: Certifique-se de iniciar o cygwin com admins privados. * Clique com o botão direito do mouse em cygwin e em "Executar como administrador")

    cat /proc/partitions
which should output:
   8 0 3813383838 sda
   8 1       4031 sda3 C:\
   8 15  30588303 sdb 
   8 15  30588303 sdb1 E:\
   8 21  30530020 sdc
   8 22  30530020 sdc1 F:\

etc ... Aqui você pode ver claramente para mim clonar minha unidade F: para minha unidade E: Eu emiti o seguinte comando.

dd if=/dev/sdc of=/dev/sdb bs=8M

Minha imagem era 32gb .. e eu não queria apenas sentar e esperar com um cursor piscando .. Eu queria ver o progresso, então eu instalei "pv" no cygwin.

dd if=/dev/sdc | pv | dd of=/dev/sdb bs=8M

Agora, se você quiser copiar o thumbdrive para uma imagem, faça o seguinte.

dd if=/dev/sdX | pv | dd of=/cygdrive/c/Users/Myname/Desktop/mythumbdrive.img bs=8M

Espero que isso ajude

    
por 02.04.2015 / 02:27
2

Será que algo como Ferramenta de Imagem USB faz?
Ou você insiste em usar o Cygwin? ...

    
por 10.04.2013 / 18:26
2

Eu tive sucesso com o dd para Windows , que acredito ser uma reescrita em vez de uma porta. É open-source e não depende do Cygwin.

Gostei especialmente do comando dd --list , que listou todos os dispositivos de disco junto com informações suficientes para identificar o que eu queria.

    
por 07.02.2015 / 21:11
1

A HDD Raw Copy Tool pode fazer cópias de um cartão SD. Se você selecionar "Imagem bruta (imagem dd)" na caixa de diálogo salvar, ela será idêntica àquelas feitas com dd. Você pode restaurar imagens também.

Eu sei que isso não é feito através do cygwin, mas eu pessoalmente não confiaria nele para acessar dispositivos brutos.

    
por 10.04.2013 / 18:45
0

Eu vejo que o RaspberryPi.org está recomendando Win32 Disk Imager para gravar imagens em cartões de memória SD. Ele também lerá imagens do cartão, então estou testando agora.

    
por 25.02.2014 / 18:00