現在使用中のため、ボリュームを取り出すことができません。

外付けUSBバックアップディスクで作業した後、ドライブをきれいにアンマウントしたい。取り出しボタンを押すと、Finderが警告メッセージを表示します。

  • というメッセージが表示されます。

または

  • "The disk "Diskname" was not able to ejected because one or more programs are using it.".

と表示されたり、ターミナルを使おうとするとumount /Volumes/Diskname`。

  • "umount(/Volumes/Diskname):resource busy -- try 'diskutil unmount'"

私の知る限り、このディスクは使用していませんが、Finderでは使用していることになっていますので、間違っているのでしょう。私は、ドライブのクリーンなアンマウントを希望します。複数の作業をしている最中なので、ログアウトしたりログインしたり、サードパーティのソフトウェアをインストールしたりするのは好ましくありません。

ターミナルコマンドの lsof が使えるかもしれませんが、個人的にはこのような 'simple'な問題にしては複雑すぎると思いますし、正直なところ、正しい使い方がわかりません。

質問です。どのプログラムが私のドライブを使用しているかを知り、そのプログラムを適切に終了させてドライブを取り出すにはどうしたらよいでしょうか?

. . .

ソリューション

確かに lsof が一番のお勧めです。一番早くて簡単な方法はこれです :-)

sudo lsof /Volumes/myDrive

実行には数分かかりますが、完了すると、ディスク上の開いているファイルのリストが表示されます。出力は以下のようになります。

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
mds         89  root   19r   DIR   52,3      432     2 /Volumes/Photos
mds         89  root   23r   DIR   52,3      432     2 /Volumes/Photos
Finder     681 alans   14r   DIR   52,3      432     2 /Volumes/Photos
QuickLook 2158 alans    9r   REG   52,3  1141591 78651 /Volumes/Photos/_tmp_iphone_10_backup/APC_1546.JPG  

この場合、ファイルを開いているのは QuickLook アプリケーションです。この問題を解決するには、アプリケーションを直接閉じるのが最善の方法です。しかし、それができない場合もあります。例えば、QuickLookはDockでアクセスできるアプリケーションとして表示されていません。

手動でアプリケーションを閉じることができない場合は、killコマンドを使ってコマンドラインからアプリケーションを終了させることができます。そのためには、2番目の列のPIDをkillするIDとして使います。上記の例では、次のようになります。

kill 2158

この方法ではうまくいかない場合があり、より攻撃的な形式の kill を使用しなければならないことに注意してください。ここでは、攻撃性をエスカレートさせた一連の例を紹介します(例のPID 2158を使用)。

kill 2158
sudo kill 2158
sudo kill -INT 2158
sudo kill -KILL 2158

プロセスやアプリケーションがkillされた後は、ディスクを取り出すことができるはずです。

最後の注意点として、lsofは1~2分かかることがあります。また、ハングアップすることもありますが、そう判断するまでに少なくとも数分はかかるはずです。

また、基本コマンドである「sudo lsof /Volumes/myDrive」では何も見つからないことがあります。そのような場合は、+Dの引数を追加してみてください(例:sudo lsof +D /Volumes/myDrive)。これでディスクのトップダウンスキャンができます。時間はかかりますが、ディスクが取り出せない原因となっているものが見つかるはずです。

(詳細はAlec Jacobson's postを参照してください。_)

解説 (9)

ドネーションウェアのアプリケーション "What's Keeping me?" を試してみてください。

このプログラムは、開発者によってMac OS X 10.6 Snow Leopard用と認定されていますが、このアプリケーションのRoaringAppsページには、OS X 10.7 LionおよびOS X 10.8 Mountain Lionで問題なく動作すると記載されています。

困ったことがありますか? ゴミ箱を空にしたり、ディスクを取り出したりするときに、何かに邪魔されてできないということはありませんか?たいていの場合、何らかのアプリケーションがファイルを開いているために、ディスクを取り除いたり、ファイルをゴミ箱に入れたりすることができないことが原因です。そこで、私たちは「What's Keeping Me」を作りました。What's Keeping Me」は、ファイルを開いたままにしているアプリケーションを特定します。そして、What's Keeping Meを使って、問題のアプリケーションを終了させ(必要であれば殺す)、タスクを実行できるようにします。What's Keeping MeにはAutomatorのワークフローが含まれているので、Finderから直接検索を実行することもできます。

解説 (4)

ボリューム上に開いているファイルがないことを確認しているにもかかわらず、このメッセージが表示されたことがあります。ディスク上のオープンファイルを示すことができるGUIツールであるWhy Not Unmountで確認しました。

私の場合は、ファイルシステムが壊れていることを示していました。ディスクユーティリティー(それでも足りなければDiskWarrior)を実行すると問題は解決し、ディスクが再びイジェクト可能になりました。

解説 (2)