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
    评论
> HD3000 Low Resolution:笔记本核显,最低分辨率,1366x768 > HD3000 High Resolution:笔记本核显,最高分辨率,1600x900+ > HD4000 Desktop:台式电脑核显,IntelCapriFB=10 > HD4000 Low Resolution:笔记本核显,最低分辨率,1366x768,IntelCapriFB=3 > HD4000 High Resolution:笔记本核显,最高分辨率,1600x900+,IntelCapriFB=4 > HD4600 Desktop:台式电脑核显,IntelCapriFB=10 > HD4400/4600 Low Resolution:笔记本核显,最低分辨率,1366x768,IntelCapriFB=12 > HD4400/4600 High Resolution:笔记本核显,最高分辨率,1600x900+,IntelCapriFB=12 > Nvidia-ATI:Nvidia-ATI 独立显卡 ++Smbios 创建smbios.plist(机型配置文件) +++MacBook Pro:6,1 6,2 8,1 8,2 8,3 9,1 9,2 10,1 11,1 11,2 11,3 +++MacBook Air:5,2 6,1 6,2 +++Mac Mini:5,1 6,2 +++iMac:10,1 11,1 11,2 11,3 12,1 12,2 13,1 13,2 14,1 14,2 14,3 +++Mac Pro:5,1 6,1 > Enable SSDT Trim:给IOAHCIBlockStorage驱动打补丁,使非苹果固态硬盘开启Trim功能。PS:Trim功能详 > Still waiting for root:给IOAHCIBlockStorage驱动打补丁,修复“Still waiting for root”错误 > Disable ECC Memory:给AppleTyMCEDriver驱动打补丁,修复MacPro机型因ECC内存校验出现错误 > Bluetooth commandWakeup:给IOBluetoothHostControllerUSBTransport驱动打补丁,修复启动/唤醒 时出现 “Bluetooth 30 seconds…”(蓝牙30秒等待)唤醒命令错误 > Intel USB3.0 after sleep:给AppleUSBXHCI打补丁,使在睡眠后能使用USB3.0端口 ++System(系统) > FakeSMC: Rev 6.0.1330 针对Mac OS X带硬件传感器监测插件的设备内核扩展程序 > AppleRTC:对AppleRTC.kext打补丁,修复睡眠/唤醒后CMOS被重置的问题 ++CPU Power Management (CPU 电源管理内核扩展) > Kernel:给系统内核打补丁(Patch mach_kernel),修复Haswell系统中对MSR 0xE2写操作时而引起的重启问题。 PS:问题描述详 Clover r2336更新说明 > AppleIntelCPUPowerManagement:给AppleIntelCPUPowerManagement.kext打补丁,修复SandyBridge/IvyBridge系统中对MSR 0xE2写操作时而引起内核错误问题 > NullCPUPowerManagement:禁止加载AppleIntelCPUPowerManagement驱动 > DisableTurboBoostBattery:在电池供电模式下禁用CPU睿频以达到节能目的 ++Battery(电池) > ACPIBatteryManager :由 RehabMan制作的ACPIBatteryManager 1.5.2 电池管理扩展内核,需要原始的 ACPIPlatform驱动和打DSDT补丁来工作 ++Network(网络) +++Wireless & Bluetooth(无线网卡和蓝牙内核扩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值