SSDのtrimを有効にする (OpenCore編)

2.5インチSSDのtrim機能をtrimforceコマンドで有効にしました。nvramを正しく動くようにしておいたためか、trimforceが効きました。もしtrimforceが効かない場合、Cloverでは、IOAHCIBlockStorage.kextにパッチ当てしてましたが、OpenCoreではThirdPartyDrivesをtrueにするだけで良いようです。

trim有効化方法 (OC対応版)

今回、trimの有効化を試したマシンは、ASUSのZ390マザーボードとSanDiskの2.5インチSATA SSDの構成です。また、trimの仕組みと設定方法は以下の記事で紹介しました。

SSDを使う場合、trimは有効になっていた方が良いと言われてます。そこで以下のステップでtrim設定に対処します。

  1. SSDによっては、macOSがtrim対応している場合があります。特にNVMe方式のM.2 SSDはOOBでtrimが働くようです。その場合は、何もしなくて良いです。
  2. 非対応SSDの場合、trim機能をmacOSのtrimforceコマンドで起動することができます。このコマンドには、nvramが関係している様子です。ただし、trimforceが効かないこともあります。
  3. trimforceが効かない場合は、config.plistに設定してパッチを当てます。Cloverでは、IOAHCIBlockStorage.kextにパッチ当てしてます。OpenCoreではThirdPartyDrivesをtrueにします。

でも実のところ、このマシンでは、メインのSSDをM.2 NVMeにしたため、データを入れる場所にした2.5インチSSDのtrim設定は長らくほったらかしにしていました。trimforceは効かないし、パッチ当てるのも面倒だったのも理由です。

ThirdPartyDrivesの説明を読む

という状況だったのですが、OpenCoreにしたところ、パッチ当てが簡単になっていることに気づきました。上のステップに書いたように、config.plistの中で設定できるThirdPartyDrivesというプロパティをtrueにすれば、IOAHCIBlockStorage.kextにパッチを当ててくれます。これなら簡単にtrim有効化できます。さらにその説明を読むと、以下のように、できればtrimforceが望ましいようなことが書いてありました。

ThirdPartyDrives : デフォルトはfalseです。IOAHCIBlockStorage.kextにパッチを当て、サードパーティのドライブでtrimやハイバーネーションを可能にします。このオプションは、ユーザの判断で使わないことにしても良いです。最近のmacOSバージョンには、専用のユーティリティであるtrimforceが提供されています。10.15以降では、このユーティリティは、01 00 00 00という値のEnableTRIMという変数をnvramに作ります。

ThirdPartyDrivesでパッチ当てをしてくれるものの、trimforceはmacOSがサポートするtrim機能を活性化するmacOSのコマンドなので、これでtrim有効化するのが望ましいそうです。trimforceで有効化できない場合の時だけ、ThirdPartyDrivesをtrueするのが良いと思います。

trimforceコマンドでtrim有効化する

そこで、久々にtrimforceを試したところ、すんなり動いてしまいました。Terminalからtrimforceとタイプすると、説明が出ます。

% trimforce
Usage:
trimforce enable
trimforce disable
trimforce help

次に、OpenCoreの説明にある、EnableTRIMがnvramの中にあるかどうか調べてみました。

% nvram -p | grep EnableTRIM

何も表示されません。定義されていないようです。そこでtrimforceコマンドで、trimを有効にするよう試みました。色々警告が出ますが進めます。

% sudo trimforce enable
Password:
IMPORTANT NOTICE:  This tool force-enables TRIM for all relevant attached devices, even though such devices may not have been validated for data integrity while using TRIM.  Use of this tool to enable TRIM may result in unintended data loss or data corruption.  It should not be used in a commercial operating environment or with important data. Before using this tool, you should back up all of your data and regularly back up data while TRIM is enabled.  This tool is provided on an “as is” basis. APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THIS TOOL OR ITS USE ALONE OR IN COMBINATION WITH YOUR DEVICES, SYSTEMS, OR SERVICES. BY USING THIS TOOL TO ENABLE TRIM, YOU AGREE THAT, TO THE EXTENT PERMITTED BY APPLICABLE LAW, USE OF THE TOOL IS AT YOUR SOLE RISK AND THAT THE ENTIRE RISK AS TO SATISFACTORY QUALITY, PERFORMANCE, ACCURACY AND EFFORT IS WITH YOU.
Are you sure you wish to proceed (y/N)? y
Your system will immediately reboot when this is complete.
Is this OK (y/N)?

この後、警告の通り、自動的に再起動してしまいます。再起動後に、先ほどのnvram変数を調べてみました。

% nvram -p | grep EnableTRIM
EnableTRIM %01

OpenCoreのマニュアルにある通り、01という値のEnableTRIM変数が出来上がっていました。システム情報を見ると、設定前は「いいえ」だったTRIMサポートの項目が「はい」に変化していました。trimforceで正しく設定できたようです。

trimforceは長らく機能しなかったので、あきらめていましたが、設定できるようになっていました。trimforceがnvramを使うようになったためか、さらにはSSDT-PMC.amlでnvramが正しく使えるようになったおかげのようです。

まとめ

ひさびさにtrimforceコマンドを試したら、2.5インチSSDのtrimが有効になりました。ちなみにM.2 NVMe SSDの方は、何もしない状態でtrim有効でした。もしtrimforceが効かない場合は、OpenCoreでしたらThirdPartyDrivesをtrueにすれば良いと思われます。

8件のコメント

  1. こちらの膨大かつ詳細な情報をもとにOpenCoreでビルドすることができました。MacOSとは別にWindowsインストールしたSSDではTRIMが「いいえ」になっていたので早速変更しました。
     Kernel –> Quirks –> ThirdPartyDrives = True
    としてターミナルで設定し再起動完了後、確認したところ無事「はい」と表記されました。簡単でびっくりしました。ありがとうございました。

    1. OpenCoreで成功おめでとうです。記事にも書きましたが、ThirdPartyDrivesで設定するよりも、可能ならばtrimforceで設定した方が望ましいらしいです。

      1. bootmacosさん、再確認させてください。
        私はKernel –> Quirks –> ThirdPartyDrives = Trueとして、Terminalからtrimforceとタイプしました。
        この手順ではなくて、ThirdPartyDrivesはFalseのままでtrimforceを行えばよいのでしょうか?

        1. はいThirdPartyDrives = Trueにするか、またはtrimforceをするか、そのどちらかだけで良いです。trimforceで有効になるならThirdPartyDrivesはfalseのままで良いです。

          1. ありがとうございます!どちらかで実現させます(というかThirdPartyDrivesをfalseにします。

            (追伸)
            ここで書くべきことではないのですが、Forumに私の成功構成をあげようとしていますが、404エラーがでてしまいますがアップロードされたことは履歴に残っているようです。どうしたらいいでしょうか?

            1. 確認しました。承認が必要な状態になっていて保留になってました。全部承認しておきましたので、重複してしまったかも知れません。指示いただければ重複分を消しておきます。せっかく投稿していただいたのに、ご迷惑おかけしてすみませんでした。

              1. ご承認が必要だったのですね、私の理解が足りませんでした。
                #9471
                #9468
                を消していただいて構わないと思います。
                ほぼ同じなので(笑)
                お手数をおかけします。

            2. いえ、通常は承認無しで投稿していただける設定になっているのですが、長さなのか、リンクの多さなのか、何かの条件で承認必要になってしまっていたようです。設定をあまりよくわかっていなくてすみません。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です