So kopieren Sie mit Cygwin ein Bild von einer SD-Speicherkarte


30

Kurz gesagt, ich arbeite an einem Windows 7-Computer und möchte das Image von einer SD-Karte entfernen (die Karte von einem Raspberry Pi sichern ). Ich versuche Cygwin zu benutzen , habe aber nicht viel Erfolg.

Beim Durchsuchen des /devVerzeichnisses sieht es so aus, als würde meine SD-Karte als sddund angezeigt sdd1. Wenn ich jedoch den folgenden Befehl ausführe:

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

Ich bekomme folgendes:

dd: opening '/ dev / sdd': Erlaubnis verweigert

Ich habe dd auf einem Mac und unter Linux ohne Probleme mit ähnlicher Syntax verwendet. Was vermisse ich bei Cygwin?


Hast du es versucht dd if=/dev/sdd1 of RPi.img?
Kruug,

Wenn ich das tue, erhalte ich nur eine ~ 59 MB-Datei von der 4 GB SD-Speicherkarte. Grundsätzlich erhalte ich nur den Teil der Karte, den Windows "sieht", wenn Sie die Karte in das Lesegerät einlegen. Es ist nicht das vollständige Bild.
GrandAdmiral

Könnten Sie einen Linux-Computer oder eine Linux LiveCD verwenden, anstatt es unter Windows zu versuchen?
Kruug

Virtuelle Linux-Maschinen scheinen die SD-Speicherkarte (VMware Player und VirtualBox ausprobiert) nicht zu sehen, da ich den internen Reader des Laptops verwende. Dann, um das Ganze abzurunden ... Ich habe auch keinen CD-Brenner im Laptop. :) Ich habe einen Mac zu Hause, den ich verwenden kann. Ich habe nur versucht, etwas zu finden, das mit meiner aktuellen Situation kompatibel ist. Und herauszufinden, ob es überhaupt möglich ist. Es schien, als hätte Cygwin funktionieren sollen.
Großadmiral

4
Ich habe festgestellt, dass ich auch 'cat / proc / partitions' verwenden kann, um den Namen der angeschlossenen SD-Speicherkarte abzurufen.
Großadmiral

Antworten:


27

Du bekommst den Permission deniedFehler, weil du es nicht bist root. Das klingt im Kontext von Cygwin seltsam, trifft aber zu Hause.

Wenn Sie Ihren Status ( id) in einer normal gestarteten Cygwin-Shell abfragen , erhalten Sie ungefähr Folgendes:

$ 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

Unter Windows 7 besteht der Trick, rootin Cygwin zu werden, darin, die Sitzung mit erhöhten Rechten zu starten. Klicken Sie also mit der rechten Maustaste auf Ihr Cygwin-Symbol und wählen Sie Als Administrator ausführen . Jetzt bist du immer noch nicht du rootselbst, aber zumindest in rootder Gruppe:

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

Und jetzt ddfunktioniert es so, wie Sie es von Un * x gewohnt sind:

$ 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

Sehr interessant und das funktioniert. Vielen Dank! Diese Methode und das USB-Image-Tool bieten zwar eine Lösung, ich akzeptiere diese Antwort jedoch, da sie direkter mit meiner ursprünglichen Frage zusammenhängt.
GrandAdmiral

Auf diese Weise bin ich kein Mitglied von root. Hat sich etwas geändert?
Pysis

1
@Pysis: Mit der aktuellen Cygwin-Version ( CYGWIN_NT-6.1-WOW 2.7.0 (0.306 / 5/3) 2017-02-12 13:13 i686 Cygwin ) kann ich auf diese Weise immer noch root werden . Vielleicht hilft Ihnen stackoverflow.com/q/4090301 on SO ?!
mpy

Es scheint, ich habe 2.6.1 von cygwin1.dll ( cygcheck). Ich erhalte keine "0 (root)", aber ich erhalte "114 (lokales Konto und Mitglied der Administratorengruppe"), "544 (Administratoren)" und "405504 (High Mandatory Level)" anstelle von "401408 ( Medium Mandatory Level) "auf meinem Windows 10 Pro x64-Bit-System. Der Kontext ist, dass ich ausführen wollte fdisk, aber das scheint immer noch nicht zu helfen, obwohl ich in der Lage gewesen sein mag, andere Tools mit privilegiertem Zugriff auszuführen, z dd.
Pysis

@Pysis: Kann das mit W10 zu tun haben ?! - Leider kann ich nur spekulieren, da ich nur W7 benutze.
mpy

11

Ich musste kürzlich unter Windows ein USB-Laufwerk auf ein anderes klonen. Mein Laufwerk ist ein Multiboot mit zusätzlicher Software, daher wollte ich nicht einfach alle Dateien auf den FS kopieren. DD war eine klare Wahl, aber ich war nicht unter Linux, also gab es ein paar Dinge, die ich tun musste, um es zum Laufen zu bringen.

Ich hatte Cygwin installiert und Folgendes getan.

Zuerst musste ich herausfinden, welches / dev / sdX-Gerät mein f: -Volume war. Führen Sie dazu diesen Befehl in cygwin aus. (TIPP: Stellen Sie sicher, dass Sie cygwin mit Administratorrechten starten. * Klicken Sie mit der rechten Maustaste auf cygwin und wählen Sie "Als Administrator ausführen".)

    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 ... Hier können Sie klar sehen, dass ich mein F: -Laufwerk auf mein E: -Laufwerk klonen kann. Ich würde den folgenden Befehl ausgeben.

Es gibt noch einen weiteren Schritt: Sie müssen das Stammverzeichnis Ihres Geräts finden. Suchen Sie nach einer SD *, die eine Größe Ihres Geräts hat. Dies dürfte einfach sein, da die Größe bekannt sein sollte, z. B. 8 GB, 16 GB, 32 GB, erweitert als Bytes, wie oben gezeigt.

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

Mein Bild war 32GB .. und ich wollte nicht nur sitzen und mit einem blinkenden Cursor warten .. Ich wollte den Fortschritt sehen, also habe ich "pv" in cygwin installiert.

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

Wenn Sie nun den Thumbdrive in ein Image kopieren möchten, gehen Sie wie folgt vor.

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

Hoffe das hilft


2

Funktioniert so etwas wie USB Image Tool ?
Oder bestehen Sie darauf, Cygwin zu verwenden? ...


Kein Bestehen auf Cygwin. Dieses Tool war etwas seltsam beim Anzeigen der SD-Speicherkarte (manchmal verschwanden die Informationen, aber vielleicht tat Windows etwas), aber es schien zu funktionieren und es war WIRKLICH SCHNELL. Ich habe eine 4-GB-Datei auf meinem Computer, die der erwarteten Größe entspricht. Ich denke, ich werde es mit einer Version aus dem eigentlichen 'dd'-Befehl unterscheiden, nur um sicherzugehen. WENN das gut aussieht, nehme ich deine Antwort an. Vielen Dank!
GrandAdmiral

Nun, die Dateien stimmten nicht überein, aber das könnte meine Schuld sein. Ich glaube, ich habe das RPi gebootet, nachdem ich das erste Image aufgenommen hatte, ohne darüber nachzudenken. Nun, zumindest habe ich das Backup, das ich mir jetzt gewünscht habe, und ich habe ein Tool, mit dem ich später unter Windows experimentieren kann. Im schlimmsten Fall fahre ich einfach nach Hause und benutze einen vernünftigen Computer / Betriebssystem. :)
GrandAdmiral

2

Ich hatte Erfolg mit dd für Windows , das meiner Meinung nach eher ein Umschreiben als ein Port ist. Es ist Open Source und verlässt sich nicht auf Cygwin.

Besonders gut hat mir der dd --listBefehl gefallen , bei dem alle Festplatten mit genügend Informationen aufgelistet wurden, um die gewünschte zu identifizieren.


1

HDD Raw Copy Tool kann Kopien von einer SD-Karte erstellen. Wenn Sie im Speicherdialog "Rohbild (dd-Bild)" auswählen, ist es mit jenen identisch, die mit dd erstellt wurden. Sie können auch Bilder wiederherstellen.

Ich weiß, dass es nicht über Cygwin erfolgt, aber ich persönlich würde es nicht mit dem Zugriff auf Raw-Geräte vertrauen.


Woher bekommen Sie die Option, ein Rohbild zu speichern? Ich habe gesehen, wo man die Quelle (SD-Speicherkarte) und das Ziel (Festplatte) auswählen kann, aber dann gab es nur eine Starttaste. Da nicht klar war, was als nächstes passieren würde, verließ ich das Programm.
GrandAdmiral

Zuerst doppelklicken Sie auf Ihr Laufwerk, dann doppelklicken Sie im nächsten Bildschirm auf die Option "Datei", in der Sie auswählen können, wo das Image gespeichert werden soll.
Yuikonnu

0

Ich sehe, dass RaspberryPi.org jetzt Win32 Disk Imager zum Schreiben von Bildern auf SD-Speicherkarten empfiehlt . Es liest auch Bilder von der Karte, also probiere ich es jetzt aus.


Ich weigere mich, diese zu berühren, da es Berichte darüber gibt, dass sie Ihre System-CD verwüstet. Selten, aber es hängt von der Hardware ab und ich werde es nicht riskieren.
Tjmoore
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.