[OSX] 在 Lion 中開啟 Trim 支援

從 OSX 10.6.7 的更新出現之後,蘋果的作業系統開始支援 SSD 的 Trim 指令,對於固態硬碟來說,這是一件很重要的事情,畢竟攸關硬碟效能壽命的維持啊!但是蘋果卻只針對由自家升級出廠的 SSD 開啟 Trim 指令,而不是所有所有支援 Trim 指令的 SSD 都享受得到…(好繞口!)

後來有人發現關鍵是在一個 kernel extension 檔案上。在這個檔案中, Trim 指令的支援與否是以硬碟的硬體型號描述來判斷,只會在硬體型號描述中符合「APPLE SSD」字串的情形下才會開啟。因此很自然的又有人用修改該 kernel extensions 檔案的方式,讓所有第三方 SSD 都能符合條件,更有人寫成了方便的小程式 Trim Enabler,讓大家都可以輕鬆的開啟 Trim 指令。

但是在系統昇級到 Lion 之後呢?由於 Trim Enabler 會把這個 kernel extensions 置換成 Snow Leopard 上的舊版本,這樣的動作會不會有什麼不良影響或是造成系統不穩定沒人可以保證,所以還是手動一步一步慢慢來比較保險,況且整個程序其實也不會太複雜。

***** 警告 *****

請事先確認您的 SSD 型號確實支援 Trim 指令,若您不確定可以在 Google 查看看。接下來的動作由於會更動到系統的核心部份,勢必會有一定的風險存在,請在確定自己很清楚在做什麼、並確定有此需求的情況下,才跟著繼續執行下去。可以的話最好也做一次完整的硬碟備份以防萬一。若有任何損失恕不負責!

一切都準備完成後,請打開 Terminal(/應用程式/工具程式/終端機.app),依序輸入下列步驟的指令,一次一行

STEP 1:備份

第一個指令的作用,是先把我們要修改的目標檔案(IOAHCIBlockStorage.kext)先作備份的動作,儲存到別的地方。

sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /IOAHCIBlockStorage.original

STEP 2:修改

第二個指令的作用,是把目標檔案中的「APPLE SSD」字串修改掉填0,以支援所有第三廠的 SSD 硬碟。

sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00).{9}(\x00\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

STEP 3:清除快取

第三、四個指令的作用,是清除系統對核心延伸套件的快取,以讓我們修改過的部份能夠生效。

sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

STEP 4:重新開機

最後,重新開機讓系統載入新的核心延伸套件,然後再到系統資訊去查看 Serial-ATA 中,我們的 SSD 是不是以經支援 Trim 指令。

換回原本的設定

如果系統變得不穩定或是發生了什麼無法控制的狀況,我們可以透過下面的指令來把備份的原始檔案置換回去。情況如果糟到無法操作,可嘗試關掉電腦重新啟動,並在開機前按住 Shift 鍵不放進入安全模式再作下面的回復動作。

sudo cp /IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

附記

我自己修改過後,第一次重新開機進入桌面之後有些許遲鈍的現象,過一下子就恢復正常了,似乎是沒有問題的。我使用的 SSD 是 Intel 的 X-25M G2 系列,其他的廠牌型號可不可行我也不確定。至於這樣的修改方法是不是真的有效果,在國外的網站有看人用 Benchmark 軟體測試過,效能有恢復到接近全新的狀態,也用別的方式證實過透過這種方式的確有讓 Trim 指令正常發揮作用。

希望大家都能順利開啟 Trim 支援,讓我們的 SSD 都能更長壽!

Reference:
In OS X Lion how do you enable TRIM support for SSDs?

[OSX] 在 Lion 中開啟 Trim 支援 有 “ 11 則迴響 ”

  1. 嗨!

    請教您: 小弟的老系統 Power Mac G5, 現在OS最高只能裝到10.5.8.,
    換上有支援TRIM的SSD, 可以照您指導的手動方式去開啟TRIM指令嗎
    ? 還是OS X 10.6.7. 以前的版本都免議了 ?

    感謝回覆先!

    1. 您好,根據判斷那個 10.6.7 才出現的 kext (姑且稱之為驅動程式)在 10.5.8 中應該不存在才是,我想應該是行不通的。剛剛看了一下似乎也沒有把該 kext 移植到 10.5.8 上還可以正常運作的相關文章。

      我的 G5 電源供應器壞掉,所以也沒辦法試試看,抱歉囉!

    1. 因為使用終端機 sudo 指令一定要輸入密碼,如果你的帳號並沒有設定密碼請先到系統設定選項中去設定,之後再取消即可。

發表迴響 取消回覆

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>