macOS SequoiaとSonomaで外付けドライブを安全に取り出す方法
Appleは近年のmacOSでドライブの取り出しのしくみを変えました。SequoiaとSonomaで何が違うのか、そしてよくある取り出しの問題にどう対処すればよいのかを解説します。
最近macOS SequoiaやSonomaにアップグレードしたなら、外付けドライブの取り出しの感触が変わったことに気づいたかもしれません。Appleがその手順を再設計したからではなく、システムの裏側の変更が、ドライブをいつどのように取り出せるかに影響しているからです。
SequoiaもSonomaも、プライバシー制御、バックグラウンドプロセスの管理、システムサービスに変更を加え、ドライブの取り出しまわりに新たな摩擦を生んでいます。何が変わったのか、そしてどう対処すればよいのかを見ていきましょう。
SonomaとSequoiaで何が変わったか
Sonomaから、Appleはバックグラウンドプロセスの制限を拡大しました。システムは、どのアプリがバックグラウンドタスクを実行できるか、そしてそのタスクをどれだけ長く継続できるかについて、より積極的に管理するようになりました。皮肉なことに、これによって一部のプロセスが、以前とは異なる形でドライブのリソースを掴むようになっています。
Sequoiaはさらに進んで、フルディスクアクセスの権限に変更を加えました。アプリが特定のファイルの場所にアクセスするには明示的な許可が必要で、システムはこの権限をより厳格に適用します。外付けドライブにアクセスする際にシステムプロセスが権限の境界にぶつかると、きれいに失敗するのではなく、停滞してファイルハンドルを開いたままにすることがあります。
通知のしくみも変わりました。以前のmacOSでは、「ディスクが正しく取り出されませんでした」という警告は一度表示されて消えていました。Sequoiaでは、システムがより執拗に警告を出すことがあり、場合によっては、システムがドライブの状態を確認する際に、その通知自体がディスクへのアクセスを引き起こすこともあります。
システム設定の新しい場所
ドライブやディスクの設定を探しているなら、Appleがまた場所を移動させています。
Sequoiaでは、ディスク関連の設定は システム設定 > 一般 > ストレージ にあります。ただし、取り出しに関わる制御のほとんどは、いまもディスクユーティリティにあり、こちらはあまり変わっていません。
Spotlightの除外設定(取り出しの問題でよく使う対処です)は、システム設定 > Siri と Spotlight > Spotlightのプライバシー にあります。ドライブの取り出しに頻繁にてこずるなら、これは最も効果的な設定の一つです。
Sequoiaでよくある取り出しの問題
CloudKitを通じてiCloudの同期を扱う cloudd というバックグラウンドサービスが、Sequoiaで取り出しの問題を引き起こすことがあります。このサービスは、特に外付けドライブがアクティブなFinderのウィンドウだったときにiCloud同期のドキュメントを開いたことがあると、外付けドライブ上のファイルへの参照をときどき保持します。
cloudd が取り出しをブロックしている場合は、次で確認できます。
lsof /Volumes/YourDriveName | grep cloudd
アクティビティモニタから cloudd を終了させれば一時的に解消されますが、プロセスは自動的に再起動します。iCloud関連の作業を外付けドライブのディレクトリから遠ざけることが、より長期的な対処になります。
ステージマネージャ(Venturaで導入され、Sequoiaにも引き続き存在します)も問題を引き起こすことがあります。有効にしていると、最近のウィンドウとその内容への参照を維持します。外付けドライブの内容を表示したFinderのウィンドウを開いていた場合、ウィンドウを閉じたあともステージマネージャがその参照を保持していることがあります。
ステージマネージャを無効にすれば(システム設定 > デスクトップとDock > ステージマネージャ)これは解消されますが、取り出しの問題に対する解決策としては大げさです。
Sonoma特有のよくある取り出しの問題
Sonomaのウィジェットのしくみはデスクトップへと拡張され、デスクトップのウィジェットが外付けドライブのファイルを参照したり、そこからの情報を表示したりしていると、ドライブの取り出しを妨げることがあります。
より一般的なSonomaの問題は、刷新されたSpotlightにあります。SonomaのSpotlightは、以前のバージョンよりも多くのファイル形式やメタデータをインデックス化します。ドキュメント、写真、メディアファイルがたくさん入ったドライブを接続すると、Spotlightはより激しく、より長く働き、ドライブを長い間ビジー状態にします。
Sonomaはまた、ターミナルがボリュームのパスを扱う方法も変えました。/Volumes/DriveName のパスを使う一部の古いスクリプトは、挙動が変わるかもしれません。外付けドライブを自動的にマウントしたりアクセスしたりするスクリプトがある場合は、アップグレード後に動作を確認してください。
どちらのバージョンでも確実な取り出しの手順
どのmacOSのバージョンを使っていても、この手順は一貫して機能します。
- ドライブの内容を表示しているFinderのウィンドウをすべて閉じる
- ドライブ上のファイルを扱っていたアプリケーションをすべて終了する
- バックグラウンドプロセスが解放されるまで10秒待つ
- デスクトップまたはFinderのサイドバーでドライブのアイコンを右クリックし、「取り出す」を選択する
それでうまくいかない場合は、ターミナルを試します。
diskutil unmount /Volumes/YourDriveName
ターミナルでもうまくいかない場合は、何がドライブを掴んでいるかを確認します。
lsof /Volumes/YourDriveName
手作業の手順は省きましょう: Ejectaがどのプロセスがドライブをブロックしているかを正確に表示します。しかもメニューバーから、ワンクリックでそのプロセスを終了できます。 詳しく見る →
アクセス権とフルディスクアクセス
SequoiaもSonomaも、何がドライブにアクセスできるかについてより厳格です。ターミナルやサードパーティ製のツールでドライブを管理する場合は、ターミナル(または好みのターミナルアプリ)が システム設定 > プライバシーとセキュリティ > フルディスクアクセス でフルディスクアクセスを持っていることを確認してください。
フルディスクアクセスがないと、lsof コマンドはドライブを使っているすべてのプロセスを表示しません。実際の原因を見落とすかもしれない、部分的な一覧しか得られないのです。
この権限の要件は、SonomaやSequoiaへのアップグレード後に一部の古いドライブユーティリティが動かなくなった理由でもあります。それらは新しい権限を要求するように更新される必要があるのです。
Appleが直すべきこと
macOSの核心となる取り出し体験は、何年も意味のある改善がされていません。エラーメッセージはいまだに「1つ以上のプログラムがこのディスクを使用している可能性があるため、ディスクを取り出せませんでした」と表示するだけで、どのプログラムなのかは教えてくれません。これはCatalinaでも役に立ちませんでしたし、Sequoiaでも相変わらず役に立ちません。
Appleは情報を持っています。システムは、どのプロセスがファイルハンドルを開いているかを正確に把握しています。それをユーザーに見せないだけなのです。
Appleがこれを直すまでは、Ejecta がそのギャップを埋めます。macOS SonomaとSequoiaの両方で動作し、ドライブをブロックしている具体的なプロセスを特定し、それらを直接終了させることができます。これらのOSのバージョンで導入された新しいシステムサービスや権限の要件にも対応しているので、cloudd なのか、ステージマネージャなのか、それとも別の新しいバックグラウンドプロセスが犯人なのかを、自分で解明する必要はありません。
Macをアップグレードしたからといって、基本的な作業が難しくなるべきではありません。ドライブの取り出しは、この上なく基本的な作業なのですから。
毎回ターミナルを使いたくないなら、Ejectaがどのプロセスがドライブをブロックしているかを正確に表示します。しかもメニューバーから、ワンクリックでそのプロセスを終了できます。
今すぐ購入 — $9.99