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

30

Bref, je travaille sur une machine Windows 7 et je voudrais enlever l’image d’une carte SD (en la sauvegardant depuis un Raspberry Pi ). J'essaie d'utiliser Cygwin , mais je n'ai pas beaucoup de succès.

En examinant le /devrépertoire, il semble que ma carte SD s’affiche au fur sddet à mesure 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?

Grand-amiral
la source
Avez-vous essayé dd if=/dev/sdd1 of RPi.img?
Kruug
Si je le fais, je ne reçois qu'un fichier de ~ 59 Mo sur la carte mémoire SD de 4 Go. Fondamentalement, je ne reçois que la partie de la carte que Windows "voit" lorsque vous insérez la carte dans le lecteur. Ce n'est pas l'image complète.
GrandAdmiral
Pourriez-vous utiliser une machine Linux ou un Linux LiveCD au lieu d'essayer sous Windows?
Kruug
Les machines virtuelles Linux ne semblent pas voir la carte mémoire SD (essayé avec VMware Player et VirtualBox) parce que j'utilise le lecteur interne de l'ordinateur portable. Pour couronner le tout ... je n’ai pas non plus de graveur de CD dans le portable. :) J'ai un Mac à la maison que je peux utiliser. J'essayais simplement de trouver quelque chose qui fonctionnerait avec ma situation actuelle ... et de déterminer si c'était même possible. On aurait dit que Cygwin aurait dû fonctionner.
GrandAdmiral
4
J'ai découvert que je pouvais aussi utiliser 'cat / proc / partitions' pour obtenir le nom de la carte mémoire SD connectée.
GrandAdmiral

Réponses:

27

Vous obtenez l' Permission deniederreur, parce que vous ne l'ê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 démarré normalement, vous obtenez un résultat similaire à 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 rootdans Cygwin consiste à démarrer la session en mode élevé , c’est-à-dire, faites un clic droit sur l’icône Cygwin et choisissez Exécuter en tant qu’administrateur . Maintenant, vous n'êtes toujours pas rootlui-même, mais au moins dans rootle groupe:

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

Et maintenant, ddfonctionne comme vous en avez l'habitude avec 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
mpy
la source
Très intéressant, et ça marche. Merci! Bien que cette méthode et USB Image Tool fournissent une solution, je vais accepter cette réponse car elle est plus directement liée à ma question initiale.
GrandAdmiral
Je ne suis pas un membre de root de cette façon. Est-ce que quelque chose a changé?
Pysis
1
@Pysis: Je suis toujours en mesure de devenir root de cette façon avec la version actuelle de CYGWIN ( CYGWIN_NT-6.1-WOW 2.7.0 (0.306 / 5/3) 2017-02-12 13:13 i686 Cygwin ) à compter de la mise à jour d'aujourd'hui. Peut-être que stackoverflow.com/q/4090301 sur SO pourrait vous aider?!
mpy
Il semble que j'ai 2.6.1 de cygwin1.dll ( cygcheck). Je ne reçois pas "0 (racine)", mais "114 (compte local et membre du groupe d'administrateurs"), "544 (administrateurs)" et "405504 (niveau obligatoire élevé)" au lieu de "401408 ( Niveau obligatoire moyen) "sur mon système Windows 10 Pro x 64 bits. Le contexte est que je voulais exécuter fdisk, mais cela ne semble toujours pas aider, bien que j'aie pu exécuter d'autres outils avec un accès privilégié, comme par exemple ddsur un fichier de flux de périphérique en mode bloc, curieux ici.
Pysis
@Pysis: Est-ce que cela a à voir avec W10?! - Malheureusement, je ne peux que spéculer, car j'utilise uniquement W7.
mpy
11

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 admin privs. * 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 clairement voir que je clone mon lecteur F: sur mon lecteur E: j'émettrais la commande suivante.

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

Jaime
la source
2

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

nik
la source
Aucune insistance sur l'utilisation de Cygwin. Cet outil était un peu étrange lors de l'affichage de la carte mémoire SD (parfois, les informations disparaissaient, mais peut-être que Windows faisait quelque chose) mais il semblait fonctionner et c'était VRAIMENT RAPIDE. J'ai un fichier de 4 Go sur mon ordinateur qui correspond à la taille que j'attendais. Je pense que je vais le faire disparaître avec une version de la commande 'dd' pour en être sûr. Si cela semble bon, j'accepterai votre réponse. Merci!
GrandAdmiral
Eh bien, les fichiers ne correspondaient pas, mais cela pourrait être de ma faute. Je pense que j'ai démarré le RPi après avoir saisi la première image, sans y penser. Au moins, j’ai au moins la sauvegarde que je voulais maintenant et j’ai un outil d’expérimentation qui fonctionne sous Windows. Dans le pire des cas, je vais simplement rentrer à la maison et utiliser un ordinateur / système d'exploitation sain d'esprit. :)
GrandAdmiral
2

J'ai eu du succès avec dd for 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 dd --listcommande, qui répertorie tous les périphériques de disque avec suffisamment d'informations pour identifier celle que je voulais.

RomanSt
la source
1

HDD Raw Copy Tool peut faire des copies d'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.

Yuikonnu
la source
Où avez-vous la possibilité d'enregistrer une image brute? J'ai vu où vous pouviez sélectionner la source (carte mémoire SD) et la destination (disque dur), mais il n'y avait alors qu'un bouton Démarrer. Comme il n'était pas clair ce qui allait se passer ensuite, j'ai quitté le programme.
GrandAdmiral
Tout d'abord, vous double-cliquez sur votre lecteur, puis sur l'écran suivant, vous double-cliquez sur l'option "Fichier" où vous pouvez choisir où enregistrer l'image.
Juin
0

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

Grand-amiral
la source
Je refuse de toucher à celui-ci car il a été rapporté que votre disque système était mis à la corbeille. Rare, mais cela dépend du matériel et je ne vais pas le risquer.
tjmoore