กำลังวิ่งวว ทำไมทรัพยากรไม่ว่าง


31

ฉันเพิ่งฟอร์แมตการ์ด microSD และต้องการเรียกใช้ddคำสั่ง น่าเสียดายที่ddคำสั่งล้มเหลว:

$ sudo dd bs=1m if=2016-02-26-raspbian-jessie-lite.img of=/dev/rdisk2
dd: /dev/rdisk2: Resource busy
$

ทุกคนบนอินเทอร์เน็ตบอกว่าฉันต้องยกเลิกการต่อเชื่อมดิสก์ก่อน แน่นอนว่าสามารถทำได้และไปต่อ แต่ฉันต้องการที่จะเข้าใจว่าทำไม / สิ่งที่แน่นอนใน OS X ทำให้อุปกรณ์ไม่ว่าง ? ฉันจะวินิจฉัยสิ่งนี้ได้อย่างไร

จนถึงตอนนี้ฉันพยายาม:

  1. รายการไฟล์ที่เปิดอยู่:

    $ lsof /dev/disk2
    $ lsof /dev/disk2s1
    $
    

    นอกจากนี้:

    $ lsof /Volumes/UNTITLED
    $
    
  2. รายชื่อผู้ใช้ที่ทำงานกับไฟล์:

    $ fuser -u /dev/disk2
    /dev/disk2: 
    $ fuser -u /dev/disk2s1 
    /dev/disk2s1:
    $
    

    นอกจากนี้:

    $ fuser -u /Volumes/UNTITLED
    $
    
  3. ตรวจสอบข้อความระบบ:

    $ sudo dmesg | grep disk
    $
    

    นอกจากนี้:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    

สภาพแวดล้อมของฉัน

  1. ระบบปฏิบัติการ:

    Darwin Eugenes-MacBook-Pro-2.local 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
    
  2. ข้อมูลเกี่ยวกับ microSD ของฉัน:

    diskutil list disk2
    /dev/disk2 (internal, physical):
       #:                       TYPE NAME                    SIZE       IDENTIFIER
       0:     FDisk_partition_scheme                        *31.9 GB    disk2
       1:                 DOS_FAT_32 UNTITLED                31.9 GB    disk2s1
    

PS ฉันใช้ OS X 10.11

ปรับปรุง 22/3/2016 คิดออก ฉันอีกครั้งวิ่งlsofและfuserจากข้างต้นโดยใช้sudoและในที่สุดก็ไปที่ด้านล่างของปัญหา:

$ sudo fuser /Volumes/UNTITLED/
/Volumes/UNTITLED/: 62 282
$

และ:

$ sudo lsof /Volumes/UNTITLED/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
mds        62 root    8r   DIR    1,6    32768         2 /Volumes/UNTITLED
mds        62 root   22r   DIR    1,6    32768         2 /Volumes/UNTITLED
mds        62 root   23r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds        62 root   25u   REG    1,6        0 999999999 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/journalExclusion
mds_store 282 root  txt    REG    1,6     3277        17 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexGroups
mds_store 282 root  txt    REG    1,6        8        23 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexCompactDirectory
mds_store 282 root  txt    REG    1,6      312        19 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexTermIds
mds_store 282 root  txt    REG    1,6     3277        29 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexGroups
mds_store 282 root  txt    REG    1,6     1024        35 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexCompactDirectory
mds_store 282 root  txt    REG    1,6      312        21 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexPositionTable
mds_store 282 root  txt    REG    1,6     8192        31 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexTermIds
mds_store 282 root  txt    REG    1,6     2056        22 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexDirectory
mds_store 282 root  txt    REG    1,6     8192        33 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexPositionTable
mds_store 282 root  txt    REG    1,6     8224        34 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexDirectory
mds_store 282 root  txt    REG    1,6       16        16 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexIds
mds_store 282 root  txt    REG    1,6    65536        48 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/reverseDirectoryStore
mds_store 282 root  txt    REG    1,6      704        24 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.indexArrays
mds_store 282 root  txt    REG    1,6    65536        26 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/0.directoryStoreFile
mds_store 282 root  txt    REG    1,6    32768        28 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexIds
mds_store 282 root  txt    REG    1,6    65536        36 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.indexArrays
mds_store 282 root  txt    REG    1,6    65536        38 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/live.0.directoryStoreFile
mds_store 282 root    5r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds_store 282 root   17u   REG    1,6     8192        12 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/psid.db
mds_store 282 root   32r   DIR    1,6    32768        10 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD
mds_store 282 root   41u   REG    1,6       28        15 /Volumes/UNTITLED/.Spotlight-V100/Store-V2/A2D41CCB-48CC-45F3-B8D6-F3B383D91AAD/indexState
$

จากด้านบนเป็นเรื่องง่ายที่จะเห็นกระบวนการที่เรียกmdsและmds_storeสร้างขึ้นและกำลังถือไฟล์จำนวนมากบนโวลุ่ม


ใช้of=/dev/rdisk2มันเร็วกว่ามากและไม่เก็บภาษีไปยังการ์ด SD ของคุณ
Rui F Ribeiro

สวัสดี @RuiFRibeiro! ใช่ที่ทำให้รู้สึกทั้งหมดฉันลืมเกี่ยวกับrdiskเมื่อเขียนนี้
gmile

อุปกรณ์ไม่ว่างเนื่องจากกำลังเมานต์อัตโนมัติ ... ; คุณขยายมันทำ dd ของคุณและมันจะกลับมาติดตั้งอัตโนมัติอีกครั้งทันทีที่ dd เสร็จสิ้น
Rui F Ribeiro

@RuiFRibeiro ฉันรู้ว่ามันสมเหตุสมผล ... แต่มีข้อบ่งชี้อื่น ๆ นอกเหนือจากการเห็น/Volumes/UNTITLEDและรู้ว่ามันเป็นแบบอัตโนมัติหรือไม่ เช่นบางบันทึกหรือบางกระบวนการที่ดีกว่าที่รับผิดชอบในการใช้อุปกรณ์?
gmile

1
@RuiFRibeiro ปรากฎว่าขณะนี้มี 2 กระบวนการที่เก็บเสียงไว้ สิ่งที่ฉันพลาดคือการทำงานlsofและfuserมีสิทธิ์รูท หลังจากทำงานทั้งสองด้วยsudoฉันคิดว่ากระบวนการเรียกmdsและmds_storeสร้างมากกว่าหนึ่งโหลของไฟล์บนไดรฟ์
gmile

คำตอบ:


49

ศาล Apple กฎ Apple ลองdiskutil:

$ diskutil list
...

# if mounted somewhere
$ sudo diskutil unmount $device

# all the partitions (there's also a "force" option, see the manual)
$ sudo diskutil unmountDisk $device

# remember zip drives? this would launch them. good times!
$ sudo diskutil eject $device

(ในกรณีของดิสก์อิมเมจhdiutilคำสั่งอาจเป็นที่สนใจเช่นกันคุณสามารถคลิกไปรอบ ๆDisk Utility.appได้)


สวัสดี @thrig ขอบคุณ ใช่ฉันสามารถยกเลิกการต่อเชื่อมโดยใช้ได้โดยdiskutilไม่มีปัญหา สิ่งที่ฉันทำที่นี่คือฉันกำลังเรียนรู้วิธีระบุปัญหาในระบบโดยการพูดว่า "ใช่" กับคำเตือนใด ๆ ที่ฉันสามารถสังเกตเห็นได้ ฉันอยากรู้ว่าทำไม "ทรัพยากรไม่ว่าง" กำลังเกิดขึ้นตั้งแต่แรกไม่ใช่วิธีกำจัดมัน กระบวนการที่แน่นอนในระบบปฏิบัติการกำลังทำสิ่งนี้เกิดขึ้น?
gmile

@gmile เคอร์เนลเท่าที่ฉันรู้ล็อคอุปกรณ์ไม่ว่างดังนั้นคุณจำเป็นต้องยกเลิกการต่อเชื่อมและนำพาร์ทิชันและภาพใด ๆ ออกเพื่อลบเคอร์เนลล็อคนั้น
thrig

โอ้นี่มันน่าสนใจ ฉันจะไป google เพื่อล็อคเคอร์เนลตอนนี้ บางทีคุณอาจมีทรัพยากรที่ดีในใจที่ฉันสามารถอ่านได้?
gmile

9

การถอนการติดตั้งพาร์ติชันย่อยช่วย

/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *8.0 GB     disk2
   1:             Windows_FAT_16 wr_usb_efi              134.2 MB   disk2s1
   2:                      Linux                         1.1 GB     disk2s2
vgsprasad-mbp:~ vgsprasad$ diskutil umount /dev/disk2s1
Volume wr_usb_efi on disk2s1 unmounted
vgsprasad-mbp:~ vgsprasad$ diskutil umount /dev/disk2s2
disk2s2 was already unmounted

3
นอกเหนือจากการจัดรูปแบบที่ขาดหายไป OP กล่าวโดยเฉพาะว่า "ทุกคนบนอินเทอร์เน็ตบอกว่าฉันต้องยกเลิกการต่อเชื่อมดิสก์ก่อนแน่นอนสามารถทำสิ่งนั้นและเดินหน้าต่อไป แต่ฉันต้องการที่จะเข้าใจว่าทำไม / อะไรใน OS X ทำให้อุปกรณ์ยุ่ง "
Jeff Schaller

@ Jeff ฉันวิ่งเข้าไปในปัญหาที่เกิดขึ้นเช่นเดียวกับ gmile ผมกำลังเล็งที่จะเขียน .iso จะติด USB และ DD dd: /dev/disk9: Resource busyกลับ เมื่อฉันยกเลิกการต่อเชื่อมdiskutil umount /dev/disk9s1อุปกรณ์จะหายไปจากเดสก์ท็อป แต่อุปกรณ์ดัง/dev/disk9กล่าวยังคงติดตั้งอยู่จึงddไม่สามารถทำงานได้อย่างที่ควรจะเป็น ดังนั้น Mac OSX ทำให้อุปกรณ์ไม่ว่างด้วยการสร้างทางลัดไปยังระบบไฟล์ภายในของแท่ง USB
กุสตาฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.