Menjalankan dd. Mengapa sumber daya sibuk?

32

Saya baru saja memformat kartu microSD, dan ingin menjalankan ddperintah. Sayangnya ddperintah gagal:

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

Semua orang di internet mengatakan saya harus melepas disk terlebih dahulu. Tentu, bisa melakukan itu dan terus maju. Tapi saya ingin mengerti mengapa / apa tepatnya di OS X membuat perangkat sibuk ? Bagaimana cara mendiagnosis ini?

Sejauh ini saya mencoba:

  1. Mendaftar file yang terbuka:

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

    Juga:

    $ lsof /Volumes/UNTITLED
    $
    
  2. Cantumkan pengguna yang mengerjakan file:

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

    Juga:

    $ fuser -u /Volumes/UNTITLED
    $
    
  3. Periksa pesan sistem:

    $ sudo dmesg | grep disk
    $
    

    Juga:

    $ sudo dmesg | grep /Volumes/UNTITLED
    $
    

Lingkungan saya

  1. Sistem operasi:

    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. Informasi tentang microSD saya:

    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 Saya menggunakan OS X 10.11.

Perbarui 22/3/2016 . Menemukannya. Saya menjalankan ulang lsofdan fuserdari atas menggunakan sudo, dan akhirnya sampai ke bagian bawah masalah:

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

Dan:

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

Dari penjelasan di atas, sangat mudah untuk melihat bahwa proses dipanggil mdsdan mds_storetelah dibuat dan menahan banyak file pada volume.

gmile
sumber
Menggunakannya of=/dev/rdisk2jauh lebih cepat, dan tidak terlalu membebani kartu SD Anda.
Rui F Ribeiro
Hai @RuiFRibeiro! Ya, itu masuk akal, saya lupa rdiskketika menulis ini.
gmile
Perangkat ini sibuk karena diautomatiskan ...; Anda umount, lakukan dd Anda, dan itu akan diautount kembali segera setelah selesai.
Rui F Ribeiro
@RuiFRibeiro Saya tahu, itu masuk akal ... Tetapi apakah ada beberapa indikasi lain, selain melihat /Volumes/UNTITLEDdan mengetahui bahwa itu di-mount? Seperti, beberapa log, atau beberapa proses yang lebih baik yang bertanggung jawab untuk mengambil perangkat?
gmile
1
@RuiFRibeiro ternyata ada 2 proses yang saat ini menahan volume yang terpasang. Apa yang saya lewatkan berjalan lsofdan fuserdengan hak akses root. Setelah menjalankan keduanya dengan sudo, saya pikir proses dipanggil mdsdan mds_storedibuat lebih dari selusin file pada volume.
gmile

Jawaban:

51

Pengadilan Apple, aturan Apple. Coba 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

(Dalam hal gambar disk, hdiutilperintah mungkin juga menarik. Anda juga dapat mengklik di sekitar Disk Utility.app.)

thrig
sumber
Hai @ thrig, terima kasih. Ya, saya dapat melepas menggunakan diskutil, tidak ada masalah dengan itu. Apa yang saya lakukan di sini adalah saya belajar bagaimana mengidentifikasi masalah dalam sistem dengan mengatakan "Ya" untuk setiap peringatan yang dapat saya temukan. Saya ingin tahu mengapa "Resource sibuk" terjadi di tempat pertama, bukan bagaimana cara menghilangkannya. Proses persis apa dalam OS yang membuat ini terjadi?
gmile
@ gmile kernel, sejauh yang saya tahu, mengunci perangkat yang sibuk, jadi Anda perlu melepas dan mengeluarkan semua partisi dan gambar untuk menghapus kunci kernel itu.
thrig
oh, ini menarik. Saya akan pergi ke google untuk mengunci kernel sekarang. Mungkin Anda memiliki sumber daya yang bagus di benak Anda di mana saya bisa membacanya?
gmile
9

Melepas sub partisi membantu

/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
Shivaprasad
sumber
3
selain dari pemformatan yang hilang, OP secara khusus mengatakan "Semua orang di internet mengatakan saya harus meng-unmount disk terlebih dahulu. Tentu, bisa melakukan itu dan melanjutkan. Tapi saya ingin mengerti mengapa / apa tepatnya di OS X membuat perangkat sibuk? "
Jeff Schaller
@ Jeff saya mengalami masalah yang sama dengan gmile, saya bertujuan untuk menulis .iso ke USB stick, dan dd kembali dd: /dev/disk9: Resource busy. Ketika saya melepas dengan diskutil umount /dev/disk9s1, perangkat menghilang dari desktop, tetapi /dev/disk9masih terpasang sehingga ddtidak bisa melakukan sebagaimana mestinya. Jadi Mac OSX membuat perangkat sibuk dengan membuat jalan pintas ke sistem file bagian dalam tongkat USB.
Gustav