macOSの「ディスク使用中」エラー: トラブルシューティングガイド
Macで起こる「ディスク使用中」エラーを解決するための総合ガイド。あらゆる原因と対処法を1か所にまとめました。
外付けドライブの取り出しをクリックすると、macOSが拒みます。「1つ以上のプログラムがこのディスクを使用している可能性があるため、ディスクを取り出せませんでした。」作業していたものはすべて閉じました。それらしいものは何も動いていません。いったい何がディスクを使っているのでしょうか?
このガイドでは、「ディスク使用中」エラーのよくある原因をすべて取り上げ、それぞれの対処法を解説します。まずは手早くできる対処から始めて、少し手間のかかる解決策へと進んでいきましょう。
まず試したい手早い対処
トラブルシューティングを始める前に、これらを試してみてください。
ドライブを表示しているFinderのウィンドウをすべて閉じる。 これが最もよくある原因です。ドライブ上のフォルダを開いたFinderのウィンドウがある場合、あるいはサイドバーでドライブを選択しているだけでも、Finderはそれをロックします。それらのウィンドウを閉じるか、別の場所へ移動させてください。
数秒待ってからもう一度試す。 プロセスがちょうど処理を終えようとしているだけのこともあります。Spotlightがインデックス作成を終えようとしていたり、アプリケーションがキャッシュファイルを保存していたりするかもしれません。30秒ほど待ってから、もう一度取り出しを試してください。
デスクトップからではなく、サイドバーから取り出してみる。 Finderのサイドバーで、ドライブ名の隣にある取り出しアイコンをクリックします。デスクトップのアイコンを右クリックしてもうまくいかないときに、これでうまくいったという報告があります。
これらでうまくいかない場合は、実際に何がドライブを掴んでいるのかを突き止める番です。
ブロックしているプロセスを見つける
macOSはどのプログラムがドライブを使っているかを教えてくれませんが、ターミナルなら教えてくれます。ターミナルを開いて、次を実行します。
sudo lsof /Volumes/YourDriveName
「YourDriveName」を実際のドライブ名に置き換えてください。名前にスペースが含まれる場合は、パスを引用符で囲みます。sudo lsof "/Volumes/My Drive"
パスワードの入力が必要になります。出力には、そのドライブ上でファイルを開いているすべてのプロセスが表示されます。COMMAND列を見て、プロセス名を確認してください。
よく見かけるプロセスはこちらです。
mds、mds_stores、mdworker: Spotlightのインデックス作成Finder: Finderのウィンドウ、またはファイル操作QuickLookUIService: サムネイルやプレビューの生成backupd: 進行中のTime Machineバックアップfsevents: ファイルシステムの変更監視bashまたはzsh: 現在のディレクトリがドライブ上にあるターミナルのシェル
Spotlightのインデックス作成
Spotlightは取り出しの問題で最も頻繁な原因です。外付けドライブを接続すると、その内容を検索できるように、macOSはすぐにインデックス作成を始めます。関与するプロセス(mds、mds_stores、mdworker)は、作業中ファイルを開いたままにします。
インデックス作成が完了するのを待つ。 新しいドライブや内容が変わったドライブでは、ファイル数によってインデックス作成に数分から数時間かかることがあります。インデックス作成中は、Spotlightの検索結果に進捗バーが表示されます。
このボリュームのインデックス作成を無効にする。 そのドライブをSpotlightで検索する必要がなければ、除外できます。
sudo mdutil -i off /Volumes/YourDriveName
これでSpotlightはそのドライブを無視するようになります。コマンドを実行したあと、もう一度取り出しを試してください。
Spotlightのプライバシーリストに追加する。 恒久的な解決策としては、システム設定を開き、Siri と Spotlight に進み、Spotlightのプライバシーまでスクロールして、ドライブを追加します。リストから削除するまで、二度とインデックス作成されることはありません。
Spotlightのプロセスを終了させる。 最後の手段として、アクティビティモニタでmdsのプロセスを強制終了できます。「mds」で検索し、ドライブにアクセスしているものをそれぞれ選択して、Xボタンをクリックして強制終了します。Spotlightは自動的に再起動しますが、ドライブは解放されるはずです。
Finderとファイル閲覧
Finderは、目に見えにくい形でドライブを掴み続けることがあります。
Finderのウィンドウをすべて閉じる。 ドライブを表示しているウィンドウが見当たらなくても、Finderがバックグラウンドのタブで開いていたり、ウィンドウのデフォルトの場所として保持していたりすることがあります。
Finderを再起動する。 Optionキーを押しながらDockのFinderアイコンを右クリックし、「再度開く」を選択します。これですべてのFinderのウィンドウが閉じられ、Finderが保持していたロックが解放されます。
コピー操作を確認する。 最近ドライブにファイルをコピーした、あるいはドライブからコピーした場合、Finderがまだバックグラウンドで後処理をしているかもしれません。Finderを開いて、どこかに進行中の進捗バーがないか確認してください。
クイックルックとプレビュー
macOSは、ファイルを閲覧する際にサムネイルとプレビューを生成します。クイックルックのシステム(QuickLookUIService、quicklookd)は、フォルダから離れたあともファイルハンドルを開いたままにすることがあります。
クイックルックをリセットする。 次のコマンドを実行して、クイックルックのキャッシュを消去し、再起動します。
qlmanage -r cache
クイックルックのプロセスを終了させる。 アクティビティモニタで「QuickLook」を検索し、ドライブにアクセスしているプロセスを強制終了します。
ターミナルとシェルのセッション
ターミナルを使って外付けドライブに移動していた場合、そのシェルのセッションがドライブを使用中の状態にします。プロセス名は bash、zsh、または使用しているシェルの名前として表示されます。
現在のディレクトリを確認する。 各ターミナルのウィンドウで pwd を実行して、今どこにいるかを確認します。外付けドライブ上のパスが表示されたら、cd ~ を実行してホームフォルダに戻ります。
ターミナルのウィンドウを閉じる。 複数のターミナルのウィンドウやタブがある場合は、それらを閉じるか、ドライブから別の場所へそれぞれ移動させてください。
最近使ったファイルを抱えるアプリケーション
多くのアプリケーションは、最近開いたファイルへの参照を保持しています。ドキュメントを閉じたあとでも、アプリケーションがそれへの接続を維持していることがあります。
ドライブ上のファイルにアクセスしたアプリケーションを終了する。 ドライブから開いたドキュメントを思い出し、それらのアプリケーションを、ウィンドウを閉じるだけでなく完全に終了させてください(Command+Q)。
最近使った項目を確認する。 一部のアプリは、最近開いたファイルをメニューに一覧表示します。そのメニューを開くと、ファイルへの接続が再び確立されることがあります。あるアプリが犯人らしいのに終了させても解決しない場合は、Dockから外し、終了させてから、新しく開き直してみてください。
Time Machine
ドライブがTime Machineのバックアップドライブである場合、backupd プロセスがバックアップを管理しており、バックアップ操作中や操作後にドライブを掴むことがあります。
バックアップが完了するのを待つ。 メニューバーのTime Machineアイコンを確認して、バックアップが進行中かどうかを見ます。取り出しを試みる前に、完了するのを待ってください。
現在のバックアップをスキップする。 Time Machineアイコンをクリックし、「このバックアップをスキップ」を選択して、進行中のバックアップをキャンセルします。後処理のために1分ほど待ってから、取り出しを試してください。
Time Machineを一時的に無効にする。 システム設定を開き、Time Machineをクリックして、オフに切り替えます。しばらくすると、ドライブが解放されるはずです。
システムプロセスとデーモン
一部のシステムレベルのプロセスは、マウントされたボリュームの変更を監視します。これには fsevents、fseventsd、およびさまざまなカーネルタスクが含まれます。
これらは単独では通常、取り出しを妨げませんが、他の問題と重なることがあります。他のすべてに対処してもなおlsofの出力にシステムプロセスが表示される場合は、次を試してください。
ログアウトして再ログインする。 これでほとんどのユーザーレベルのプロセスが再起動し、しつこいロックを解消できることがあります。
Macを再起動する。 他に何をしてもだめなら、再起動すれば確実にドライブが解放されます。完全にシャットダウンしてから、ドライブを取り外し、もう一度起動してください。
強制的に取り出すべきとき
強制的に取り出すと、何がアクセスしていようとお構いなしに、macOSにドライブのマウントを解除するよう指示できます。Optionキーを押しながらドライブを右クリックし、「強制的に取り出す」を選択することで実行できます。
ブロックしているプロセスがドライブから読み込んでいただけなら、これは概して安全です。何かが活発に書き込みをしていた場合は、よりリスクが高くなります。確信が持てない場合は、まずブロックしているプロセスを特定して終了させるようにしてください。
目に見えるコピーや保存の操作の最中には、決してドライブを強制的に取り出したり(物理的に取り外したり)しないでください。それがファイルを壊す原因になります。
今後の問題を防ぐ
ドライブをSpotlightから除外する。 外付けドライブを検索しないのであれば、Spotlightのプライバシーリストに追加してください。取り出しがほぼ一瞬で済むようになります。
取り出す前にアプリを閉じる。 取り出しを試みる前に、ドライブ上のファイルにアクセスしたアプリケーションを終了する習慣をつけましょう。
サイドバーの取り出しボタンを使う。 デスクトップのアイコンではなく、Finderのサイドバーを使う習慣をつけてください。こちらのほうが確実だと感じるユーザーもいます。
ターミナルを整頓しておく。 ターミナルを使う場合は、今どのディレクトリにいるかを意識してください。外付けドライブのディレクトリにシェルを置いたままにしないようにしましょう。
より良いワークフロー
取り出しの問題を診断するには、Unixのプロセスを理解し、ターミナルコマンドを覚え、ときには何が悪いのかを推測する必要があります。ドライブを取り外すというごく単純であるべきことのためには、あまりにも多くの摩擦です。
Ejecta は、その摩擦を取り除きます。メニューバーに常駐し、どのドライブが取り出せる状態で、どれがブロックされているかを表示し、何がブロックしているのかを正確に特定し、ワンクリックで問題を解決できます。ターミナルも、アクティビティモニタも、当て推量もいりません。
根本的な問題(macOSの曖昧なエラーメッセージと診断ツールの欠如)がなくなることはありません。しかし、ドライブを取り外す必要があるたびに、同じ謎を解き続けなくてもよいのです。
毎回ターミナルを使いたくないなら、Ejectaがどのプロセスがドライブをブロックしているかを正確に表示します。しかもメニューバーから、ワンクリックでそのプロセスを終了できます。
今すぐ購入 — $9.99