外付けSSDが取り出せない本当の理由
Macで外付けSSDが取り出せない?たいていは1つのバックグラウンドプロセスがディスクをつかんだままです。その正体を見つけて、データを失わずに安全に取り出す方法を紹介します。
回転式のハードディスクが遅く感じられて、高速な外付けSSDを買ったのに、今度はそのSSDが取り出せず、速さに見合うだけの価値はあったのだろうかと考えていませんか。
外付けSSDは、大きなファイルを動かす人にとって標準的な存在になりました。動画編集者、写真家、開発者、進捗バーがじりじり進むのを眺めるのにうんざりした人たち、みんなが使っています。しかし、SSDを高速にしているまさにその仕組みが、取り出しに関しては頑固さの原因にもなります。
SSDは書き込み方が違う
従来のハードディスクは、データを順番に1つずつ、予測可能なパターンで書き込みます。SSDの仕組みはこれとは異なります。複数のフラッシュセルにデータを同時に書き込み、寿命を延ばすためにウェアレベリングを行い、削除された領域を再利用するためにガベージコレクションを管理します。
これらはすべてバックグラウンドで起こります。SSDは何もしていないように見えても、内部では再構成、最適化、保守を続けているのです。macOSはこうした処理がいつ行われているかを常に把握できているわけではなく、それが取り出そうとしたときの競合を生むことがあります。
削除されたブロックを整理するようSSDに指示するTRIMコマンドは、バックグラウンドで定期的に実行されます。取り出そうとしたときにTRIMが動作中だと、それが終わるまでドライブが取り出しを拒むことがあります。
速さが期待を生む
SSDにファイルをコピーすると、一瞬で終わるように感じます。2GBのファイルが3秒で転送され、進捗バーが消え、完了。ところが、実はまだ終わっていないこともあるのです。
macOSは、高速なドライブに対しては書き込みキャッシュを積極的に使います。実際にデータがドライブに書き込まれる前に、システムは書き込みが完了したものとして扱います。これによってすべての操作がきびきびと感じられますが、その分「転送完了」と「実際の完了」の間にしばしばずれが生じます。
高速なSSDでは、このずれは短いものです。それでも、確かに存在します。表示上の転送が終わった直後に取り出そうとすると、ドライブがまだキャッシュを書き出している最中に当たってしまうことがあります。その書き出しが完了するまで、システムは取り出しを許しません。
大きな転送のあとは、取り出す前に10秒ほど待ってください。これほど高速なドライブでは不要に思えますが、エラーメッセージを避けられます。
USB-CとThunderboltの癖
ほとんどの外付けSSDはUSB-CまたはThunderboltで接続します。これらの接続は高速ですが、かつてのUSB-Aポートよりも複雑でもあります。
一部のSSDは複数のボリュームとして表示されたり、ファームウェアや起動可能にする機能のための隠しパーティションを持っていたりします。それぞれのボリュームが取り出しを妨げる要因になり得ます。表示されているパーティションだけを取り出した場合、隠れたほうがまだマウントされたままかもしれません。
USB-Cでは電源管理もより積極的です。SSDがマウントされたままなのにポートが部分的に電源を落としてしまったり、SSDが低電力状態に入ってmacOSがなくなったと判断してしまったりすることがあります。再び起動したときに、取り出しの問題や「ディスクが正しく取り出されませんでした」という警告が出るのです。
SSDにアクティビティランプ付きの物理的なケースがある場合は、それを観察してください。ドライブを積極的に使っていないのにランプが点滅している場合、たいていはバックグラウンドの動作、つまりガベージコレクション、TRIM、あるいはSpotlightのインデックス作成のようなmacOS関連の処理を意味します。
SpotlightはSSDが大好き
Spotlightは高速なドライブを積極的にインデックスします。SSDはすばやく読み出せるので、Spotlightは検索のためにすべてのファイルをカタログ化しようと張り切ります。これは後で探し物をするときには便利ですが、それだけSpotlightが、遅いドライブよりも多くの時間をSSDへのアクセスに費やすことを意味します。
SSDを快適に使えるようにしているその速さが、SSDをバックグラウンドプロセスにとって魅力的な対象にもしています。システムを遅くせずに読み出せるので、プロセスは遠慮なく読み出すのです。
SpotlightにSSDをブロックさせないようにするには、次のようにします。
sudo mdutil -i off /Volumes/YourSSDName
または、システム設定でドライブをSpotlightのプライバシーリストに追加します。ドライブの中身を検索する機能は失われますが、引っかかりのない取り出しが手に入ります。
SSDならではの解決策
SSDが取り出せず、明らかなアプリをすべて閉じたなら、原因はほぼ間違いなくバックグラウンドプロセスです。次のコマンドで確認します。
lsof /Volumes/YourSSDName
SSDで特によく見られる原因は次のとおりです。
mdsおよび関連プロセス: 高速ドライブをインデックスしているSpotlightfsck_apfsまたはfsck_exfat: ドライブのファイルシステムをチェックしているシステムdiskmanagementd: ドライブのパーティションを管理しているmacOSapsd: 何かを確認しているApple Push サービス
動画編集者や写真家の場合、クリエイティブ系のアプリが外付けドライブ上にプロジェクトのキャッシュやプロキシファイルを保持していることがあります。アプリを閉じた後でも、メディアのインデックス作成に関連するバックグラウンドプロセスがまだ動作中のことがあります。
SSDの取り出し問題を防ぐ
Macでしか使わないなら、SSDをAPFSでフォーマットしてください。APFSは、ほかの形式よりも電源喪失や予期しない切断にうまく対処します。取り出しの問題を防ぐわけではありませんが、強制的に取り出さざるを得なくなった場合のデータ損失のリスクを減らせます。
同期フォルダ(iCloud、Dropbox、Google Drive)を外付けSSDに保存するのは避けてください。同期サービスは変更がないか絶えずファイルをチェックするため、ハンドルが開いたままになります。
SSDをTime Machineに使う場合は、接続したままになることを前提にしてください。Time Machineはバックアップ用ドライブと常時やり取りします。取り出したいときに一時的にTime Machineを無効にすることはできますが、頻繁な切断を前提としたワークフローにはなりません。
大きな操作のあとは、ドライブに少し時間を与えてください。SSDは高速ですが、「終わったように見える」と「実際に終わった」の間のずれは依然として存在します。
速さが摩擦に出会うとき
外付けSSDは速さの問題を解決しました。内蔵ストレージに匹敵する速度を出せるポータブルドライブは、メディアや大きなファイルとの付き合い方を変えました。
しかし、取り出しの問題はなくなりませんでした。それどころか、高速なドライブだからこそ、もっと歯がゆく感じられます。切断することも含めて、そのドライブに関するすべてが速いはずだと期待してしまうからです。
Ejectaは、Spotlightであれ、クリエイティブ系のアプリであれ、聞いたこともないシステムプロセスであれ、何がSSDを人質に取っているのかを突き止めます。問題を見るのにワンクリック、解決するのにワンクリック。ドライブは、使うのと同じくらい簡単に切断できるべきなのです。
毎回ターミナルを使いたくないなら、Ejectaがどのプロセスがドライブをブロックしているかを正確に表示します。しかもメニューバーから、ワンクリックでそのプロセスを終了できます。
今すぐ購入 — $9.99