web-dev-qa-db-fra.com

Comment utiliser Cygwin pour copier une image depuis une carte mémoire SD

Pour résumer, je travaille sur une machine Windows 7 et je voudrais enlever l’image d’une carte SD (sauvegarde de la carte). un Raspberry Pi ). J'essaie d'utiliser Cygwin , mais sans grand succès.

En examinant le répertoire /dev, il semble que ma carte SD s’affiche sous la forme sdd et sdd1. Cependant, lorsque j'exécute la commande suivante:

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

Je reçois ce qui suit:

dd: ouverture '/ dev/sdd': autorisation refusée

J'ai utilisé dd sur un Mac et sous Linux sans aucun problème, en utilisant une syntaxe similaire. Qu'est-ce qui me manque avec Cygwin?

30
GrandAdmiral

Vous obtenez l'erreur Permission denied, car vous n'êtes pas root . Cela semble étrange dans le contexte de Cygwin, mais cela frappe à la maison.

Lorsque vous interrogez votre statut (id) dans un shell Cygwin normalement démarré, vous obtenez un résultat semblable à celui-ci:

$ 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

Sous Windows 7, l’astuce pour devenir root dans Cygwin est de démarrer la session élevée , c’est-à-dire d’effectuer un clic droit sur l’icône Cygwin et de choisir Exécuter en tant qu’administrateur. . Maintenant, vous n'êtes toujours pas root lui-même, mais au moins dans le groupe root:

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

Et maintenant, dd fonctionne comme vous en avez l'habitude depuis 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
27
mpy

J'ai récemment dû cloner un lecteur USB sur un autre sur Windows. Mon lecteur est un multi-démarrage avec un logiciel supplémentaire, donc je ne voulais pas simplement copier tous les fichiers sur le système de fichiers. DD était un choix évident, mais je n'étais pas sur Linux donc il y avait quelques choses que je devais faire pour que cela fonctionne.

J'avais cygwin installé et fait ce qui suit.

tout d'abord, je devais déterminer quel périphérique/dev/sdX était mon f: volume. Pour ce faire, exécutez cette commande dans cygwin. (CONSEIL: Assurez-vous de démarrer cygwin avec des privilèges d'administrateur. * Faites un clic droit sur cygwin et "Exécuter en tant qu'administrateur")

    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 ... Ici, vous pouvez voir clairement que je clone mon lecteur F: sur mon lecteur E: j'émettrais la commande suivante.

En fait, il reste encore une étape: vous devez trouver la racine de votre appareil. Recherchez un disque * qui a la taille de votre appareil. Cela devrait être facile car la taille doit être bien connue, telle que 8 Go, 16 Go, 32 Go, étendue en octets, comme indiqué ci-dessus.

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

Mon image était de 32 Go .. et je ne voulais pas rester assis à attendre avec un curseur clignotant .. Je voulais voir les progrès accomplis et j'ai donc installé "pv" dans cygwin.

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

Maintenant, si vous voulez copier la clé USB sur une image, procédez comme suit.

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

J'espère que cela t'aides

10
Jaime Carranza

J'ai eu du succès avec dd pour Windows , qui, je crois, est une réécriture plutôt qu'un port. Il est open-source et ne repose pas sur Cygwin.

J'ai particulièrement aimé la commande dd --list, qui répertorie tous les périphériques de disque avec suffisamment d'informations pour identifier celle que je voulais.

2
RomanSt

Est-ce que quelque chose comme USB Image Tool fera?
Ou insistez-vous pour utiliser Cygwin? ...

2
nik

HDD Raw Copy Tool permet de copier une carte SD. Si vous sélectionnez "Image brute (image dd)" dans la boîte de dialogue de sauvegarde, celle-ci sera identique à celle créée avec dd. Vous pouvez également restaurer des images.

Je sais que cela ne se fait pas via cygwin, mais personnellement, je ne lui ferais pas confiance pour accéder à des périphériques bruts.

1
yuikonnu

Je vois que RaspberryPi.org recommande maintenant Win32 Disk Imager pour l'écriture images sur des cartes mémoire SD. Il lira également les images de la carte, alors je l'essaie maintenant.

0
GrandAdmiral