Chạy dd. Tại sao tài nguyên bận rộn?


32

Tôi vừa định dạng thẻ nhớ microSD và muốn chạy một ddlệnh. Không may ddlệnh thất bại:

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

Mọi người trên internet nói rằng tôi cần tháo đĩa trước. Chắc chắn, có thể làm điều đó và di chuyển trên. Nhưng tôi muốn hiểu tại sao / chính xác những gì trong OS X đang khiến thiết bị bận rộn ? Làm thế nào để tôi chẩn đoán điều này?

Cho đến nay tôi đã thử:

  1. Liệt kê các tệp đang mở:

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

    Cũng thế:

    $ lsof /Volumes/UNTITLED
    $
    
  2. Liệt kê người dùng làm việc trên tệp:

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

    Cũng thế:

    $ fuser -u /Volumes/UNTITLED
    $
    
  3. Kiểm tra tin nhắn hệ thống:

    $ sudo dmesg | grep disk
    $
    

    Cũng thế:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    

Môi trường của tôi

  1. Hệ điều hành:

    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. Thông tin về thẻ nhớ microSD của tôi:

    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 Tôi đang sử dụng OS X 10.11.

Cập nhật ngày 22/3/2016 . Tìm ra. Tôi đã chạy lại lsoffusertừ trên bằng cách sử dụng sudo, và cuối cùng đã đi đến tận cùng của vấn đề:

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

Và:

$ 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
$

Từ những điều trên, dễ dàng thấy rằng các quy trình được gọi mdsmds_stoređã tạo và đang giữ rất nhiều tệp trên ổ đĩa.


Sử dụng of=/dev/rdisk2nó nhanh hơn rất nhiều và không đánh thuế vào thẻ SD của bạn.
Rui F Ribeiro

Xin chào @RuiFRibeiro! Vâng, điều đó hoàn toàn có ý nghĩa, tôi đã quên rdiskkhi viết điều này.
gmile

Thiết bị đang bận vì nó được tự động hóa ...; bạn bỏ qua nó, làm dd của bạn và nó sẽ được tự động hóa lại ngay sau khi dd kết thúc.
Rui F Ribeiro

@RuiFRibeiro Tôi biết, điều đó có ý nghĩa ... Nhưng có một số dấu hiệu khác, ngoài việc nhìn /Volumes/UNTITLEDbiết nó được tự động hóa? Giống như, một số bản ghi, hoặc một số tốt hơn một số quá trình chịu trách nhiệm về việc các thiết bị?
gmile

1
@RuiFRibeiro hóa ra có 2 quy trình hiện đang giữ âm lượng được gắn. Những gì tôi đã bỏ lỡ là chạy lsoffuservới quyền root. Sau khi chạy cả hai sudo, tôi đã tìm ra các quy trình được gọi mdsmds_storetạo ra hơn một chục tệp trên ổ đĩa.
gmile

Câu trả lời:


50

Tòa án Apple, quy tắc của Apple. Hãy thử 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

(Trong trường hợp hình ảnh đĩa, hdiutillệnh cũng có thể được quan tâm. Bạn cũng có thể nhấp xung quanh Disk Utility.app.)


Xin chào @thrig, cảm ơn bạn. Có, tôi có thể ngắt kết nối bằng cách sử dụng diskutil, không có vấn đề với điều đó. Những gì tôi đang làm ở đây là tôi đang học cách xác định các vấn đề trong hệ thống bằng cách nói "Có" với bất kỳ cảnh báo nào tôi có thể phát hiện ra. Tôi muốn biết lý do tại sao "Tài nguyên bận rộn" đang xảy ra ngay từ đầu chứ không phải làm thế nào để thoát khỏi nó. Quá trình chính xác nào trong HĐH đang khiến điều này xảy ra?
gmile

@gmile kernel, theo như tôi biết, khóa các thiết bị bận rộn, vì vậy bạn cần ngắt kết nối và đẩy bất kỳ phân vùng và hình ảnh nào để xóa khóa kernel đó.
thrig

oh, điều này thật thú vị Bây giờ tôi sẽ lên google để khóa kernel. Có lẽ bạn có một số tài nguyên tốt trong tâm trí của tôi, nơi tôi có thể đọc về nó?
gmile

9

Ngắt kết nối các phân vùng phụ đã giúp

/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
Ngoài định dạng bị thiếu, OP đặc biệt nói "Mọi người trên internet nói rằng tôi cần ngắt kết nối đĩa trước. Chắc chắn, có thể làm điều đó và tiếp tục. Nhưng tôi muốn hiểu tại sao / chính xác những gì trong OS X đang khiến thiết bị bận rộn? "
Jeff Schaller

@Jeff Tôi gặp vấn đề tương tự như gmile, tôi đã định viết một .iso vào một thanh USB và dd quay lại dd: /dev/disk9: Resource busy. Khi tôi không kết nối diskutil umount /dev/disk9s1, thiết bị biến mất khỏi máy tính để bàn, nhưng thiết /dev/disk9bị vẫn được gắn nên ddkhông thể hoạt động như bình thường. Vì vậy, Mac OSX giữ cho thiết bị bận rộn bằng cách tạo một đường tắt đến hệ thống tập tin bên trong của thanh USB.
Gustav
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.