mac vulkan_Mac SSD TRIM的终极方案

54707bc970eb239cf7702e9cab60b482.png该方法在 Mac 10.9.1 版本上面有效。

Enable SSD TRIM for Mac, Ultimate Solution. TRIM终极方案 我的Mac机型是Mac mini Late 2012,把硬盘换成了SSD。试了多种打开SSD TRIM的教程,总不能成功,有一次还弄到系统无法启动。今天大盘开始盘整了,于是可以静下心来把那些教程仔细debug一遍,发现了问题所在,成功开启了SSD TRIM。

最重要的先讲:在做这个工作之前,用Time Machine备份机器。

其次是怎么会弄到系统无法启动?原因是在改写IOAHCIBlockStorage这个文件的时候,把权限破坏了。一旦权限不对,系统会显示警告窗口,说无法加载IOAHCIBlockStorage。千万不要忽视这个警告,去重启机器,而是应该先修复权限。最简单最彻底的办法就是使用Disk Utility,选择系统盘,然后Repare Disk Permissions.

为什么有些教程会不起作用呢?这是因为不同的系统版本,如10.8.1、10.8.2,加上不同的机型,特别是新机型,系统文件有可能是不一样的。

如果教程不起作用,那就要先理解这些开启SSD TRIM办法的实质:其实就是把IOAHCIBlockStorage文件中硬盘型号的字符“APPLE SSD”这九个字节抹去,替换成全零字节。但是在整个文件中做全替换也不行,只能替换含义为硬盘型号字符的字节。

就因为各种系统和机型的文件不同,同时又要选择性地做替换,于是出现了不同的教程。这里介绍的终极方案,就是先查看你机器上的IOAHCIBlockStorage文件,然后修改教程中的一条命令,然后再执行那些命令。

003e9c49114e4bb154187f1443fbf08a.png

用一个二进制编辑器(比如说“Hex Fiend”)打开

Vim

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

1

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

搜索十六进制“52 6F 74 61 74 69 6F 6E 61 6C 00”,也就是“Rotational”字串加上0结尾。整个文件我就只搜到一个匹配的。查看后面是不是9个字符的“APPLE SSD”,如果是的话,就看“APPLE SSD”接下来的字符是什么。图中是“Time To Ready”,记下这个字串的第一个字符,是“T”,他的十六进制是54。

接下来就修改那些教程中的命令,请看https://gist.github.com/3334193,点击“Download Gist”下载文件,然后双击打开,就会自动解压缩。修改文件enable_trim.sh中的(x00{1,20}x51)中的51为上文的54,修改完就是(x00{1,20}x54),保存文件。解压的这个enable_trim.sh文件是没有执行权限的,那就在控制台运行“chmod 755 enable_trim.sh”,赋予执行权限。

注意,对于由于某墙封锁导致的不能访问github 问题,可以直接复制如下代码来自己生成sh文件

Shell

#!/bin/bash

#

# Enable TRIM support for 3rd Party SSDs. Works for Mountain Lion

#

# Source: http://digitaldj.net/2011/07/21/trim-enabler-for-lion/

set -e

set -x

# Back up 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.original

# Patch the file to enable TRIM support

sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\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

# Force a reboot of the system's kernel extension cache

sudo touch /System/Library/Extensions/

echo "Now reboot!"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#!/bin/bash

#

# Enable TRIM support for 3rd Party SSDs. Works for Mountain Lion

#

# Source: http://digitaldj.net/2011/07/21/trim-enabler-for-lion/

set-e

set-x

# Back up the file we're patching

sudocp\

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage\

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

# Patch the file to enable TRIM support

sudoperl-pi-e's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\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

# Force a reboot of the system's kernel extension cache

sudotouch/System/Library/Extensions/

echo"Now reboot!"

在运行“./enable_trim.sh”之前,一定要保证你现在的

Vim

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

1

/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

文件一定是未经修改的原系统文件。执行完毕后,系统如果没有弹出什么提示框,那就万事大吉了。有兴趣的话,你还可以用Hex Fiend查看一下修改后的文件,和原文件相比,有啥不同。

e447de273ecfed63f5b64972199557ad.png

手工重启机器后,应该就是成功了。

2536aa97d313acb3702e39e3d08502a8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值