ข้อผิดพลาด“ ทรัพยากรไม่ว่าง” เมื่อใช้ `dd 'เพื่อคัดลอกดิสก์ img ไปยังการ์ด SD


31

ฉันดาวน์โหลด Raspbian wheezy จากหน้าดาวน์โหลด Raspberry Piแล้วติดตามหน้า wiki เซ็ตอัพการ์ด SD RPi Easy

ฉันฟอร์แมตการ์ด SD และcdแก้ไขลงในโฟลเดอร์ที่มีไฟล์ Raspbian img แต่เมื่อฉันเรียกใช้sudo dd if=2013-07-26-wheezy-raspbian.img of=/dev/disk2s1 bs=1mนี่เป็นผลลัพธ์ที่ฉันได้รับ:

dd: /dev/disk2s1: Resource busy

ฉันลองอีกครั้งโดยใช้/dev/disk2เป็นไฟล์เอาต์พุต แต่ได้รับข้อผิดพลาดเดียวกัน ฉันไม่แน่ใจว่าสิ่งที่ฉันทำผิด / ทำไม img ไม่ได้ถูกคัดลอก

นี่คือผลลัพธ์ (ที่เกี่ยวข้อง) ของ$ diskutil list:

/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *32.5 GB    disk2
   1:             Windows_FAT_32 YQFORKLIFT              32.5 GB    disk2s1

เช่นเดียวกับ$ df -h:

ysim:~$ df -h
Filesystem      Size   Used  Avail Capacity  Mounted on
...
/dev/disk2s1    30Gi  1.7Mi   30Gi     1%    /Volumes/YQFORKLIFT

และนี่คือสิ่งที่ฉันเห็นภายใต้System Profiler -> Card Reader :

Built in SD Card Reader:

  Vendor ID:    0x05ac
  Product ID:   0x8403
  Revision: 1.00
  Serial Number:    000000009833

SDHC Card:

  Capacity: 32.48 GB (32,479,641,600 bytes)
  Removable Media:  Yes
  BSD Name: disk2
  Partition Map Type:   MBR (Master Boot Record)
  S.M.A.R.T. status:    Not Supported
  Volumes:
YQFORKLIFT:
  Available:    32.47 GB (32,465,321,984 bytes)
  Capacity: 32.48 GB (32,475,447,296 bytes)
  Writable: Yes
  File System:  MS-DOS FAT32
  BSD Name: disk2s1
  Mount Point:  /Volumes/YQFORKLIFT

ควรติดแท็กด้วย OSX หรือที่คล้ายกัน
Andre Holzner

คำตอบ:


43

ผมพบว่าคำตอบของฉันในส่วนถัดไปมากจากวิกิพีเดีย ; ฉันโง่ ฉันพบว่าวิธีการแก้ปัญหาไม่ได้ลงรายละเอียดมากนักเกี่ยวกับประเภทข้อความหรือข้อผิดพลาดที่คุณเห็นและคิดว่าอาจเป็นประโยชน์หากมีข้อความแสดงข้อผิดพลาด "googleable" ฉันยังพบคำแนะนำที่ไม่ชัดเจนเล็กน้อย (โดยเฉพาะรอบ ๆ ขั้นตอนที่ 8/9; ฉันไม่แน่ใจว่าพาร์ติชั่นต้องถูกถอดออกจากระบบหรือไม่) ดังนั้นฉันจึงพยายามใช้คำบางคำใหม่:

[สิ่งนี้ถือว่าการ์ด SD ของคุณได้รับการจัดรูปแบบแล้ว]

  1. เรียกใช้df -hเพื่อค้นหาพาร์ติชันของการ์ด SD ซึ่งจะอยู่ในรูปแบบ/dev/diskns1โดยที่nเป็นจำนวนเต็ม ในกรณีนี้คือ/dev/disk2s1(อีกสองตัวเป็นฮาร์ดไดรฟ์ USB ภายนอก) และใช่ฉันรู้ว่าฉันให้ชื่อแปลก ๆ ...

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          114Ki  114Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    /dev/disk2s1    30Gi  1.7Mi   30Gi     1%    /Volumes/YQFORKLIFT
    
  2. ถอนติดตั้งพาร์ติชัน:

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ sudo diskutil unmount /dev/disk2s1
    Volume YQFORKLIFT on disk2s1 unmounted
    
  3. ตรวจสอบว่าไม่มีการต่อเชื่อม / ไม่ปรากฏเมื่อคุณเรียกใช้df -h(ไม่เช่นนั้นเป็นสาเหตุของResource busyข้อผิดพลาดด้านบน - ดูที่นี่ )

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          114Ki  114Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    
  4. ในขณะที่ยังไม่ได้ต่อเชื่อมให้รันsudo dd bs=1m if=/path/to/extracted/raspberry-pi-img.img of=/dev/rdisknแทนที่nด้วยNใน/dev/diskNs1จากขั้นตอนที่ 1 ตรวจสอบให้แน่ใจว่าได้เขียนถึง/dev/rdiskN(ดิสก์) และไม่ /dev/diskNs1 (พาร์ติชัน) ซึ่งเป็นสิ่งอื่นที่ทำให้เกิดResource busyข้อผิดพลาด

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ sudo dd bs=1m if=2013-07-26-wheezy-raspbian.img of=/dev/rdisk2
    1850+0 records in
    1850+0 records out
    1939865600 bytes transferred in 151.663501 secs (12790590 bytes/sec)
    
  5. ตอนนี้การ์ด SD ได้ถูกติดตั้งใหม่และตั้งชื่อแล้วboot!

    ysim:/Volumes/Elements 1/Operating Systems/Raspberry Pi$ df -h
    Filesystem      Size   Used  Avail Capacity  Mounted on
    /dev/disk0s2   233Gi  125Gi  108Gi    54%    /
    devfs          115Ki  115Ki    0Bi   100%    /dev
    map -hosts       0Bi    0Bi    0Bi   100%    /net
    map auto_home    0Bi    0Bi    0Bi   100%    /home
    /dev/disk1s1   466Gi  351Gi  115Gi    76%    /Volumes/Elements
    /dev/disk3s1   466Gi  276Gi  189Gi    60%    /Volumes/Elements 1
    /dev/disk2s1    56Mi   18Mi   37Mi    34%    /Volumes/boot
    

3
ขอบคุณที่เป็นประโยชน์สุด ๆ ฉันต้องใช้sudo diskutil unmountDisk /dev/disk2แทน (ซึ่งอันที่จริงแล้วเป็นขั้นตอนเดียวที่ฉันต้องใช้เพื่อเรียกใช้คำสั่ง dd อีกครั้ง)
geotheory

ฉันเพิ่ง unmount โวลุ่มแล้วใช้ ddrescue / dd โดยตรงบนดิสก์และมันก็ใช้ได้ดี ฉันไม่คิดว่าขั้นตอนอื่นเป็นสิ่งจำเป็นจริงๆ
RoyS

คุณสามารถอธิบายได้ว่าทำไมมันบอกว่า/dev/rdisk2แทน/dev/disk2? ที่ไหนที่ไม่rมาจากไหน?
oschlueter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.