ddを実行しています。リソースがビジーなのはなぜですか?


32

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とを再実行fusersudo、最終的に問題の最下部に到達しました。

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

上記から、プロセスが呼び出さmdsmds_storeて作成され、ボリューム上に多くのファイルを保持していることが簡単にわかります。


これを使用of=/dev/rdisk2すると、はるかに高速で、SDカードに負担がかかりません。
ルイFリベイロ

こんにちは@RuiFRibeiro!ええ、それは全く理にかなっています、私はrdiskこれを書くときに忘れていました。
グマイル

デバイスは自動マウントされているためビジーです...; マウントを解除してddを実行すると、ddが終了するとすぐに再び自動マウントされます。
ルイFリベイロ

@RuiFRibeiro私は知っています、それは理にかなっています...しかし、それが自動マウントされていることを見/Volumes/UNTITLED知っていること以外に、他の兆候がありますか?いくつかのログ、またはデバイスを取得するためのいくつかのより良いプロセスが好きですか?
グマイル

1
@RuiFRibeiroは、マウントされたボリュームを現在保持しているプロセスが2つあることを確認しました。私が逃したのは、root権限で実行さlsoffuserていたことです。を使用して両方を実行した後、ボリューム上の1ダースを超えるファイルがsudo呼び出されmdsmds_store作成されるプロセスを把握しました。
グマイル

回答:


50

アップルコート、アップルルール。してみてください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、問題ありません。ここでやっていることは、見つけられる警告に「はい」と言って、システムの問題を特定する方法を学んでいることです。どうやってそれを取り除くかではなく、なぜ「リソースビジー」が発生しているのかを知りたいのです。OSでこれを実現する正確なプロセスは何ですか?
グマイル

私の知る限り、カーネルは@gmileで使用中のデバイスをロックします。そのため、カーネルロックを解除するには、パーティションとイメージをアンマウントしてイジェクトする必要があります。
thrig

ああ、これは面白いです。カーネルのロックをグーグルで調べます。たぶん、あなたは私がそれについて読むことができるいくつかの良いリソースをあなたの心に持っていますか?
グマイル

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は「インターネット上の誰もが最初にディスクをアンマウントする必要があると言っています。確かに、それを実行して先に進むことができます。 」
ジェフシャラー

@Jeff gmileと同じ問題にぶつかりました。USBスティックに.isoを書き込むことを目指していたので、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.