trimforce on OS X Yosemite.4

How to Execute ‘Trimforce’ Command with Your SSD | Other World Computing Blog」という記事を見つけたので実験してみたところ、ちょいと論理的におかしい状況に陥っているのでメモとして公開する。

事前準備として、Chameleon SSD OptimizerでTRIMを有効にしていたので、これを使ってTRIMを無効にし、システム情報.appでTRIMが無効になっていることを確認した。

ここで、Chameleon SSD OptimizerやTRIM EnablerがTRIMを有効にするhack手段として、nvramのboot-argsにkext-dev-mode=1を設定し、その上でApple純正kextを改変していることを思い出し、

nvram boot-args

と叩いたところ、

kext-dev-mode=1

と帰ってきてしまった。これは規定値に戻っていないことを示すので、

sudo nvram boot-args=””

と叩いて設定値を消去して再起動を掛けた。再起動後に再度確認したところ設定値がなくなっていたので

sudo trimforce enable

を叩くと、長々と「何らかの影響でディスクの内容が消えても責任を持てないけどいいよね?」を意味する念押しと「処理が終わったら再起動するけれどいいよね?」ともうひとつ念押しが表示され、それぞれに”y”を叩くと、

Enabling TRIM…
.
.
Operation succeeded. Your system will reboot momentarily, please wait…

と表示され、しばし待たされた後に自動的に再起動が掛かった。ここで期待するのはいつも通りにささっと起動し、システム情報.appでTRIMが有効と表示されることだ。

しかし、再起動後のプログレスバーの伸び方がいかにも「kextcacheを再構築しています」なじりじりとした伸び方をしていたので「ん? おかしいぞ?」と予感をしていたところ、プログレスバーが1/3くらい伸び、通常であればディスプレイの左上に表示されるべきマウスカーソルが表示されないまま通行禁止マークの表示となった。

ここで想定したのは「kextcacheの再構築に失敗したな」だったので、わたしにとってはおなじみとなった儀式である「Cindori Software、OS X Yosemiteがインストールされたサードパーティ製SSDでTrim Enablerを使う際の注意点を掲載。最悪起動しなくなる場合も。」のStep3のnvram部分を外した3コマンドを叩いて再起動させてみたが、通行禁止マークは変わらず。

「これはおかしいでしょう?」と思いつつも、仕方がないので先の儀式のnvram部分も含めて4コマンドを叩いて再起動したところ、kextcache再構築風のプログレスバーの伸び方をしつつも起動して、システム情報.appでTRIM有効の表示となってくれた。

現状をまとめると、
– nvramのboot-argsはkext-dev-mode=1のまま
– TRIMは有効
– Chameleon SSD OptimizerではTRIM有効にしていない認識
となっている。

trimforceコマンドでTRIMが有効になっているという状況なのに、nvramのboot-argsを既定の空にすると起動せず、開発者モード(=kext署名無効)を意味するkext-dev-mode=1を設定すると起動するのは論理的におかしいと考える。

もしかして、trimforceコマンドも実はnvramの設定を開発者モードにしているのか?

2102時追記
tangram_pieces: Yosemite 10.10.4のtrimforceについて」にtrimforceの振る舞いが記述されていた。
うん、確かに/System/Library/ExtensionsにAppleDataSetManagement.kextはある。
kextを追加しているのだからkextcacheの再構築は必須であり、起動時のプログレスバーの伸び方からも、儀式のコマンドもtrimforceが内部的に投げているように見える。
nvramのboot-argsはkext-dev-mode=1の謎はまだ解けぬ。

広告