วิธีใช้ Cygwin เพื่อคัดลอกรูปภาพจากการ์ดหน่วยความจำ SD


30

เรื่องสั้นสั้นฉันกำลังทำงานกับเครื่อง Windows 7 และฉันต้องการตัดภาพออกจากการ์ด SD (สำรองข้อมูลการ์ดจากRaspberry Pi ) ฉันพยายามใช้Cygwinแต่ไม่ประสบความสำเร็จมากนัก

ตรวจสอบ/devไดเรกทอรีดูเหมือนว่าการ์ด SD ของฉันมีการแสดงขึ้นเป็นและsdd sdd1อย่างไรก็ตามเมื่อฉันเรียกใช้คำสั่งต่อไปนี้:

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

ฉันได้รับต่อไปนี้:

dd: open '/ dev / sdd': ปฏิเสธการอนุญาต

ฉันใช้ddบน Mac และ Linux โดยไม่มีปัญหาใด ๆ โดยใช้ไวยากรณ์ที่คล้ายกัน ฉันขาดอะไรกับ Cygwin


คุณเคยลองdd if=/dev/sdd1 of RPi.imgไหม
Kruug

ถ้าฉันทำอย่างนั้นฉันจะได้รับไฟล์ ~ 59 MB จากการ์ดหน่วยความจำ SD ขนาด 4 GB โดยทั่วไปฉันจะได้รับเฉพาะส่วนของการ์ดที่ Windows "เห็น" เมื่อคุณใส่การ์ดในเครื่องอ่าน มันไม่ใช่ภาพเต็ม
GrandAdmiral

คุณสามารถใช้เครื่อง Linux หรือ Linux LiveCD แทนที่จะลองใช้ Windows ได้ไหม
Kruug

เครื่องเสมือนของ Linux ดูเหมือนจะไม่เห็นการ์ดหน่วยความจำ SD (ลองใช้ VMware Player และ VirtualBox) เพราะฉันใช้ตัวอ่านภายในบนแล็ปท็อป จากนั้นไปด้านบนปิด .... ฉันไม่มีเครื่องเขียนซีดีในแล็ปท็อปเช่นกัน :) ฉันมี Mac ที่บ้านที่ฉันสามารถใช้ได้ฉันแค่พยายามหาสิ่งที่จะทำงานกับสถานการณ์ปัจจุบันของฉัน .... และคิดออกว่าเป็นไปได้หรือไม่ ดูเหมือนว่า cygwin น่าจะทำงานได้ดี
GrandAdmiral

4
ฉันพบว่าฉันยังสามารถใช้ 'cat / proc / พาร์ทิชัน' เพื่อรับชื่อของการ์ดหน่วยความจำ SD ที่แนบมา
GrandAdmiral

คำตอบ:


27

คุณจะได้รับข้อผิดพลาดเพราะคุณไม่ได้Permission denied rootฟังดูแปลกในบริบทของ Cygwin แต่มันกลับมาถึงบ้าน

เมื่อคุณค้นหาสถานะ ( id) ในเชลล์ Cygwin ที่เริ่มต้นตามปกติคุณจะได้รับสิ่งต่อไปนี้

$ 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

ภายใต้ Windows 7 เคล็ดลับที่จะกลายเป็นrootใน Cygwin คือการเริ่มต้นการใช้งานสูง , ที่อยู่, ทำคลิกขวาบนไอคอน Cygwin ของคุณและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ ตอนนี้คุณยังไม่ได้เป็นของrootตัวเอง แต่อย่างน้อยก็อยู่ในrootกลุ่มของ:

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

และตอนนี้ddทำงานได้ตามที่คุณคุ้นเคยจาก 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

น่าสนใจมากและใช้งานได้ดี ขอบคุณ! ในขณะที่ทั้งวิธีนี้และเครื่องมืออิมเมจ USB มอบวิธีแก้ปัญหาฉันจะยอมรับคำตอบนี้เพราะมันเกี่ยวข้องโดยตรงกับคำถามเริ่มต้นของฉัน
GrandAdmiral

ฉันไม่ได้เป็นสมาชิกรูทด้วยวิธีนี้ มีอะไรเปลี่ยนแปลงบ้างไหม?
Pysis

1
@Pysis: ฉันยังคงสามารถรูทด้วยวิธีนี้ด้วยรุ่น cygwin ปัจจุบัน ( CYGWIN_NT-6.1-WOW 2.7.0 (0.306 / 5/3) 2017-02-12 13:13 i686 Cygwin ) ตามการอัพเดทในวันนี้ บางทีstackoverflow.com/q/4090301ในดังนั้นอาจจะมีการช่วยเหลือสำหรับคุณ ?!
mpy

ดูเหมือนว่าฉันจะมี 2.6.1 จาก cygwin1.dll ( cygcheck) ฉันไม่ได้รับ "0 (root)" แต่ฉันได้รับ "114 (บัญชีท้องถิ่นและสมาชิกของกลุ่มผู้ดูแลระบบ"), "544 (ผู้ดูแลระบบ)" และ "405504 (ระดับบังคับสูง)" แทน "401408 ( ระดับข้อบังคับปานกลาง) "ในระบบ Windows 10 Pro x64 บิตของฉัน บริบทคือฉันต้องการเรียกใช้fdiskแต่ก็ยังดูเหมือนว่าจะไม่ช่วยแม้ว่าฉันอาจจะสามารถเรียกใช้เครื่องมืออื่น ๆ ที่มีการเข้าถึงสิทธิ์ได้ดีเช่นddในไฟล์สตรีมอุปกรณ์บล็อกเพียงอยากรู้ที่นี่
Pysis

@Pysis: อาจเกี่ยวข้องกับ W10 ได้ไหม! - น่าเสียดายที่ฉันสามารถคาดเดาได้เมื่อฉันใช้ W7 เท่านั้น
mpy

11

ฉันเพิ่งต้องโคลนไดรฟ์ USB หนึ่งไปยังอีกที่หนึ่งบน windows ไดรฟ์ของฉันเป็นมัลติบูตพร้อมซอฟต์แวร์เพิ่มเติมดังนั้นฉันไม่ต้องการคัดลอกไฟล์ทั้งหมดใน FS DD เป็นตัวเลือกที่ชัดเจน แต่ฉันไม่ได้อยู่ใน linux ดังนั้นมีบางสิ่งที่ฉันต้องทำเพื่อให้มันทำงานได้

ฉันติดตั้ง cygwin แล้วและทำสิ่งต่อไปนี้

ก่อนอื่นฉันต้องหาว่าอุปกรณ์ / dev / sdX ของฉันคืออะไรปริมาณ: โดยให้รันคำสั่งนี้ใน cygwin (เคล็ดลับ: ตรวจสอบให้แน่ใจว่าคุณเริ่ม cygwin ด้วย privs ของผู้ดูแลระบบ .. * คลิกขวาที่ cygwin และ "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:\

ฯลฯ ... ที่นี่คุณสามารถเห็นฉันอย่างชัดเจนถึงการโคลน F: ขับไปที่ E: ขับฉันจะออกคำสั่งต่อไปนี้

มีอีกขั้นตอนหนึ่งจริง ๆ แล้วคุณต้องค้นหารากของอุปกรณ์ของคุณ มองหา sd * ที่มีขนาดอุปกรณ์ของคุณ สิ่งนี้จะง่ายอย่างที่ขนาดควรเป็นที่รู้จักกันดีเช่น 8GB, 16GB, 32GB ขยายเป็นไบต์ตามที่แสดงด้านบน

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

ภาพของฉันคือ 32gb .. และฉันไม่ต้องการนั่งรอด้วยเคอร์เซอร์กะพริบ .. ฉันต้องการเห็นความคืบหน้าดังนั้นฉันจึงติดตั้ง "pv" ใน cygwin

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

ตอนนี้ถ้าคุณต้องการคัดลอก thumbdrive ไปที่ภาพให้ทำดังต่อไปนี้

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

หวังว่านี่จะช่วยได้


2

สิ่งที่ต้องการจะเครื่องมือภาพ USBทำอย่างไร
หรือคุณยืนยันที่จะใช้ Cygwin หรือไม่? ...


ไม่มีการยืนยันในการใช้ Cygwin เครื่องมือนั้นแปลกเล็กน้อยเมื่อแสดงการ์ดหน่วยความจำ SD (บางครั้งข้อมูลอาจหายไป แต่อาจเป็นเพราะ Windows ทำอะไรบางอย่าง) แต่ดูเหมือนว่ามันจะทำงานได้และมันก็เร็วจริงๆ ฉันมีไฟล์ขนาด 4 GB อยู่ในคอมพิวเตอร์ของฉันซึ่งเป็นขนาดที่ฉันคาดไว้ ฉันคิดว่าฉันจะแตกต่างกับรุ่นจากคำสั่ง 'dd' ที่แท้จริงเพื่อให้แน่ใจ ถ้ามันดูดีฉันจะยอมรับคำตอบของคุณ ขอบคุณ!
GrandAdmiral

ไฟล์ไม่ตรงกัน แต่นั่นอาจเป็นความผิดของฉัน ฉันคิดว่าฉันบูท RPi หลังจากคว้าภาพแรกไม่คิดเกี่ยวกับมัน อย่างน้อยตอนนี้ฉันมีข้อมูลสำรองที่ฉันต้องการในตอนนี้และฉันมีเครื่องมือสำหรับทดสอบตามถนนที่ใช้งานได้กับ Windows กรณีที่แย่ที่สุดฉันจะขับรถกลับบ้านและใช้คอมพิวเตอร์ที่มีสติ / ระบบปฏิบัติการ :)
GrandAdmiral

2

ฉันประสบความสำเร็จกับdd สำหรับ Windowsซึ่งฉันเชื่อว่าเป็น rewrite มากกว่าพอร์ต มันเป็นโอเพ่นซอร์สและไม่ได้พึ่งพา Cygwin

ฉันชอบdd --listคำสั่งโดยเฉพาะซึ่งแสดงรายการอุปกรณ์ดิสก์ทั้งหมดพร้อมกับข้อมูลเพียงพอที่จะระบุสิ่งที่ฉันต้องการ


1

เครื่องมือคัดลอกข้อมูลดิบของ HDDสามารถทำสำเนาการ์ด SD ได้ หากคุณเลือก "ภาพดิบ (ภาพ dd)" ในกล่องโต้ตอบบันทึกแล้วมันจะเหมือนกับภาพที่ถ่ายด้วย dd คุณสามารถกู้คืนรูปภาพได้เช่นกัน

ฉันรู้ว่ามันไม่ได้ทำผ่าน cygwin แต่โดยส่วนตัวฉันจะไม่ไว้ใจกับการเข้าถึงอุปกรณ์ดิบ


คุณจะได้รับตัวเลือกในการบันทึกภาพดิบที่ไหน ฉันเห็นว่าคุณสามารถเลือกแหล่งที่มา (การ์ดหน่วยความจำ SD) และปลายทาง (HDD) ได้ แต่จากนั้นมีเพียงปุ่มเริ่ม เนื่องจากยังไม่ชัดเจนว่าจะเกิดอะไรขึ้นต่อไปฉันจึงออกจากโปรแกรม
GrandAdmiral

ก่อนอื่นให้ดับเบิลคลิกที่ไดรฟ์จากนั้นในหน้าจอถัดไปที่คุณดับเบิลคลิกที่ตัวเลือก "ไฟล์" ที่คุณสามารถเลือกตำแหน่งที่จะบันทึกภาพได้
yuikonnu

0

ฉันเห็นว่าRaspberryPi.orgแนะนำWin32 Disk Imagerสำหรับการเขียนภาพไปยังการ์ดหน่วยความจำ SD มันจะอ่านภาพจากการ์ดด้วยดังนั้นตอนนี้ฉันก็ลองแล้ว


ฉันปฏิเสธที่จะแตะต้องมันเนื่องจากมีรายงานว่ามันทำให้ดิสก์ระบบของคุณพัง หายาก แต่ขึ้นอยู่กับฮาร์ดแวร์และฉันจะไม่เสี่ยง
tjmoore
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.