2016/06/28 追記: El CapitanでTrimを有効にする方法をこちらで解説しています。
本日リリースされた「OS X Yosemite 10.10.4」では、さまざまな水面下の改良が行われています。
例えば、discoverydのかわりにmDNSresponderが復活し、ネットワーク周りの安定性の向上が図られたことが注目を集めているのですが、ほかにもSSDに関する重要な変更がおこなわれていたことが分かりました(MacRumors、Ars Technica)。
その変更とは、コマンドラインから、サードパーティ製SSDのTrim機能を有効化できるApple純正コマンド「trimforce」の追加です。先日、次期バージョン OS X El Capitanで発見され、話題となっていたこのコマンドがYosemiteに導入されたことで、Trim Enablerなどの外部ツールを使用することなく、Trimを有効化することが可能となったのです。
以下その使用方法を簡単に説明したいと思います。
trimforceの使用方法
※Trim Enablerを使って、Trimを有効化していた場合、事前にオフにして元に戻してから実行しましょう。
trimeforceの使用方法は簡単で、ターミナルを開き「sudo trimforce enable」と打ち込むだけ。「Trimを有効化することでデータをロストしてしまう危険性がある」という趣旨の警告文が表示されますので、自己責任にて「y」を打ち込み、有効化します。もう一度「y」を打ち込むと再起動して、Trimの適用が完了します。
再起動した後、Trimが有効化されているかどうか確認します。「このMacについて > システムレポート > ハードウェア > SATA/SATA Express」と進み、TRIMサポートが「はい」になっていればOKです。
安全か安全でないかそれが問題だ
Appleがtrimforceコマンド実行に際し、仰々しいほどの警告文を表示するのには理由がありそうです。それはサードパーティ製SSDドライブの中に、Trimコマンドの取り扱いに不具合を持つものが存在し、(少なくともLinuxでは)データロストの危険性が確認されているためです。
Ars Technicaのコメント欄で、以下のような警告を発している人がいます。
HEED THE DATA LOSS WARNING! There are a number of extremely buggy SSD models out there (like almost all the Samsung 8* and various Crucial models) that will permanently delete the wrong data ('https://blog.algolia.com/when-solid-state-drives-are-not-that-solid/') when issuing TRIM commands. The bug is not dependent on queued TRIM, it happens even when using the non-queued version. All the Samsung SSDs beginning with a "8" (840 and 850, both EVO and Pro) are known to have the data-destroying TRIM bug and TRIM is blacklisted on those drives on other platforms.
「SamsungやCrucialのSSDの中には、TRIMコマンドに関する不具合が発生したとき、永久に間違えたデータを削除してしまう問題が存在するものがある。バグはqueued TRIMだけでなく、non-queuedバージョンでも発生する。Samsungの全てのSSD (8で始まるモデル。840、850、EVOとProの両方)は、データ消失TRIMバグを持っていることで知られ、ほかのプラットフォーム(Linux)では、TRIMがブラックリスト入りしている」。
Linuxでブラックリスト入りしているSSDをOS XでTrim有効化して使用すると危険なのかどうか、より深い情報を知りたい方はMacRumorsや、Hacker Newsで情報収集することをおすすめします。なおLinuxでブラックリスト入りしているSSDは以下の通りです。
"Micron_M500*" "Crucial_CT*M500*" "Micron_M5[15]0*" "Crucial_CT*M550*" "Crucial_CT*MX100*" "Samsung SSD 8*"
それでも有効化した
個人的に、Samsung 850 Evoや、Crucial CT512MX100SSD1を使っていて、上記リストにおもいっきり該当しているのですが、これまでTrimを有効化していて、とくに不具合に遭遇した経験がないので、今回も有効化することにしました(運が良いだけだったのかどうか、今後判明するのかもしれませんが)。
trimforceコマンドを使用する場合、事前に十分調査しバックアップをとるなどの準備をしてから実行することをおすすめします。