Cara menggunakan Cygwin untuk menyalin gambar dari kartu memori SD

30

Singkatnya, saya sedang mengerjakan mesin Windows 7 dan saya ingin menghapus gambar dari kartu SD (mencadangkan kartu dari Raspberry Pi ). Saya mencoba menggunakan Cygwin , tetapi tidak berhasil.

Memeriksa /devdirektori, sepertinya kartu SD saya muncul sebagai sdddan sdd1. Namun, ketika saya menjalankan perintah berikut:

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

Saya mendapatkan yang berikut ini:

dd: pembukaan '/ dev / sdd': Izin ditolak

Saya telah menggunakan dd pada Mac dan di Linux tanpa masalah, menggunakan sintaksis yang sama. Apa yang saya lewatkan dengan Cygwin?

Laksamana Muda
sumber
Sudahkah Anda mencoba dd if=/dev/sdd1 of RPi.img?
Kruug
Jika saya melakukannya, saya hanya mendapatkan file ~ 59 MB dari Kartu Memori SD 4 GB. Pada dasarnya saya hanya mendapatkan bagian dari kartu yang Windows "lihat" ketika Anda memasukkan kartu ke pembaca. Ini bukan gambar penuh.
GrandAdmiral
Bisakah Anda menggunakan mesin Linux, atau Linux LiveCD daripada mencoba di Windows?
Kruug
Mesin Virtual Linux sepertinya tidak melihat Kartu Memori SD (mencoba VMware Player dan VirtualBox) karena saya menggunakan pembaca internal di laptop. Kemudian to top it off .... Saya juga tidak punya pembakar CD di laptop. :) Saya punya Mac di rumah yang bisa saya gunakan, saya hanya mencoba menemukan sesuatu yang akan bekerja dengan situasi saya saat ini .... dan mencari tahu apakah itu mungkin. Sepertinya cygwin seharusnya bekerja.
GrandAdmiral
4
Saya menemukan bahwa saya juga dapat menggunakan 'cat / proc / partisi' untuk mendapatkan nama Kartu Memori SD yang terlampir.
GrandAdmiral

Jawaban:

27

Anda mendapatkan Permission deniedkesalahan, karena tidak root. Kedengarannya aneh dalam konteks Cygwin, tetapi itu menyentuh rumah.

Saat Anda menanyakan status Anda ( id) di shell Cygwin yang biasanya dimulai, Anda akan mendapatkan sesuatu seperti itu:

$ 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

Di bawah Windows 7, trik untuk menjadi rootdi Cygwin adalah memulai sesi yang ditinggikan , yaitu, klik kanan pada ikon Cygwin Anda dan pilih Run as Administrator . Sekarang Anda masih belum rootsendiri, tetapi setidaknya di rootgrup:

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

Dan sekarang, ddberfungsi seperti biasa dari 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
sumber
Sangat menarik, dan itu berhasil. Terima kasih! Meskipun metode ini dan USB Image Tool memberikan solusi, saya akan menerima jawaban ini karena lebih terkait langsung dengan pertanyaan awal saya.
GrandAdmiral
Saya bukan anggota root dengan cara ini. Apakah ada yang berubah?
Pysis
1
@ Analisis: Saya masih bisa menjadi root dengan versi cygwin saat ini ( CYGWIN_NT-6.1-WOW 2.7.0 (0.306 / 5/3) 2017-02-12 13:13 i686 Cygwin ) pada pembaruan hari ini. Mungkin stackoverflow.com/q/4090301 di SO mungkin bisa membantu Anda ?!
mpy
Sepertinya saya punya 2.6.1 dari cygwin1.dll ( cygcheck). Saya tidak mendapatkan "0 (root)", tetapi saya mendapatkan "114 (Akun lokal dan anggota grup Administrator"), "544 (Administrator)", dan "405504 (Level Wajib Tinggi)" daripada "401408 ( Tingkat Wajib Menengah) "pada sistem Windows 10 Pro x64-bit saya. Konteksnya adalah bahwa saya ingin menjalankannya fdisk, tetapi sepertinya masih tidak membantu, walaupun saya mungkin dapat menjalankan alat lain dengan akses istimewa dengan baik, seperti ddpada file aliran perangkat blok, hanya ingin tahu di sini.
Pysis
@ Audit: Apakah ini ada hubungannya dengan W10 ?! - Sayangnya saya hanya bisa berspekulasi karena saya menggunakan W7 saja.
mpy
11

Saya baru-baru ini harus mengkloning satu drive USB ke yang lain di windows. Drive saya adalah multiboot dengan perangkat lunak tambahan jadi saya tidak ingin hanya menyalin semua file di FS. DD adalah pilihan yang jelas, tetapi saya tidak menggunakan linux jadi ada beberapa hal yang harus saya lakukan untuk membuatnya bekerja.

Saya telah menginstal cygwin dan melakukan hal berikut.

pertama saya harus mencari tahu apa / dev / sdX perangkat f: volume saya. Untuk melakukannya jalankan perintah ini di cygwin. (TIP: Pastikan Anda memulai cygwin dengan admin privs .. * Klik kanan pada cygwin dan "Run as Administrator")

    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:\

dll ... Di sini Anda dapat dengan jelas melihat saya untuk mengkloning F: drive ke E saya: drive saya akan mengeluarkan perintah berikut.

Sebenarnya ada satu langkah lagi, Anda harus menemukan root perangkat Anda. Cari sd * yang memiliki ukuran perangkat Anda. Ini harus mudah karena ukurannya harus diketahui seperti 8GB, 16GB, 32GB diperluas sebagai byte seperti yang ditunjukkan di atas.

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

Gambar saya 32GB .. dan saya tidak ingin hanya duduk dan menunggu dengan kursor berkedip .. Saya ingin melihat kemajuan jadi saya menginstal "pv" di cygwin.

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

Sekarang jika Anda ingin menyalin thumbdrive ke gambar lakukan hal berikut.

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

Semoga ini membantu

Jaime
sumber
2

Akankah sesuatu seperti USB Image Tool dilakukan?
Atau, apakah Anda bersikeras menggunakan Cygwin? ...

nik
sumber
Tidak ada desakan untuk menggunakan Cygwin. Alat itu agak aneh ketika menampilkan Kartu Memori SD (kadang-kadang info akan hilang, tapi mungkin itu adalah Windows melakukan sesuatu) tetapi tampaknya berfungsi dan itu SANGAT CEPAT. Saya memiliki file 4 GB di komputer saya dengan ukuran yang saya harapkan. Saya pikir saya akan memperbaikinya dengan versi dari perintah 'dd' yang sebenarnya hanya untuk memastikan. JIKA itu terlihat bagus, saya akan menerima jawaban Anda. Terima kasih!
GrandAdmiral
Yah, file-nya tidak cocok tapi itu bisa jadi salahku. Saya pikir saya mem-boot RPi setelah mengambil gambar pertama, tidak memikirkannya. Yah, setidaknya saya memiliki cadangan yang saya inginkan sekarang dan saya memiliki alat untuk bereksperimen dengan jalan yang bekerja di bawah Windows. Kasus terburuk saya hanya akan pulang dan menggunakan komputer / OS waras. :)
GrandAdmiral
2

Saya sudah sukses dengan dd untuk Windows , yang saya percaya adalah penulisan ulang daripada port. Ini open-source dan tidak bergantung pada Cygwin.

Saya terutama menyukai dd --listperintah, yang mencantumkan semua perangkat disk bersama dengan info yang cukup untuk mengidentifikasi yang saya inginkan.

RomanSt
sumber
1

HDD Raw Copy Tool dapat membuat salinan kartu SD. Jika Anda memilih "Gambar mentah (gambar dd)" di dialog simpan maka itu akan sama dengan yang dibuat dengan dd. Anda dapat mengembalikan gambar juga.

Saya tahu ini tidak dilakukan melalui cygwin, tetapi saya pribadi tidak akan mempercayainya dengan mengakses perangkat mentah.

yuikonnu
sumber
Di mana Anda mendapatkan opsi untuk menyimpan Gambar Mentah? Saya melihat di mana Anda dapat memilih sumber (SD Memory Card) dan tujuan (HDD), tetapi kemudian hanya ada tombol Start. Karena tidak jelas apa yang akan terjadi selanjutnya, saya keluar dari program.
GrandAdmiral
Pertama Anda klik dua kali drive Anda, kemudian pada layar berikutnya Anda klik dua kali opsi "File" di mana Anda dapat memilih tempat untuk menyimpan gambar.
yuikonnu
0

Saya melihat bahwa RaspberryPi.org sekarang merekomendasikan Win32 Disk Imager untuk menulis gambar ke Kartu Memori SD. Itu juga akan membaca gambar dari kartu, jadi saya mencobanya sekarang.

Laksamana Muda
sumber
Saya menolak untuk menyentuh yang itu karena ada laporan bahwa itu merusak disk sistem Anda. Jarang, tapi itu tergantung pada perangkat kerasnya dan aku tidak akan mengambil risiko.
tjmoore