Skip to main content

Enable TRIM On Mac OS X

SSD-TRIM

If you’ve installed a Solid State Drive (SSD) in your laptop, there’s an important final step often missed; and that’s enabling TRIM.

WHY ENABLE TRIM?

When you simply “delete” a file on a traditional hard drive, it’s not really “erased.” Instead, its location on the drive is reported to the OS as “empty, even though the ones and zeroes are still there, ready to be overwritten. On SSDs, however, overwriting data can take a considerably longer time than writing to “unused” space.  As solid state drives became more affordable, the TRIM command was introduced to facilitate “garbage collection” of deleted data, allowing the SSD to reset those “unused” blocks back to an “empty” state. This allows for better performance for many SSDs.

ENABLING TRIM ON OS X 10.9 and 10.8

Backup the file we’re patching

“sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.backup”

Patch the file to enable TRIM support for any SSDs (from 10.8.3 to 10.9)

“sudo perl -pi -e ‘s|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg’ /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage”

or patch the file for 10.7.5 to 10.8.2

“sudo perl -pi -e ‘s|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x4D)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg’ /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage”

Finalize the patch:

“sudo touch /System/Library/Extensions/”

Now reboot your system and verify that TRIM is enabled through the System Information.

 

Comments