13″ Macbook Pro Early 2011 用SSD替换光驱,DIY 组建 Fusion Drive

今天的主角:一台2011年初的Macbook Pro 13,系统是Mavericks 10.9,内置5400转的320G东芝硬盘。前阵子入手了一块Sandisk的128G Ultra Plus SSD,SATA III接口,看评测可以达到530MB读/290MB写每秒,决定用它来让手里的老笔记本发挥余热。

2011年初这一批的13寸MBP SATA接口有两种,三月之前出厂的机器硬盘位是SATA III接口,光驱位则是SATA II,三月之后出厂的则两个位置都是SATA III。

不巧这一台是一月出厂的,SSD装到光驱位的话只能达到SATA II 3Gbps的速度,如图。但如果为了性能把SSD装到硬盘位,原机械硬盘装到光驱位则无法使用硬盘的防震功能。在性能和可靠性间权衡了一下,我还是选择了后者。在比较了各种安装方式的优缺点后,决定把MBP升级成单一分区的 Fusion Drive.

升级前的数据:Blackmagic测得读写速度约60/47 MB/s. 因为有Bootcamp的Windows分区,另外每次升级系统都是用覆盖的方式,加上有一堆自启动的软件,还有硬盘的空余空间不到10%,导致系统的启动速度非常慢。

以在桌面背景显示系统日志的软件Xlog载入为启动结束的标志的话,用秒表测得启动时间为1分52秒!

用QQ的进程作为参照,按下电源键到QQ成功启动为止,从系统日志算出来的启动时间为46:07-44:17=1分50秒。

  1. 准备工作
  2. 更换SSD
  3. 重新分区
  4. 创建Fusion Drive
  5. 恢复系统
  6. 开启Trim
  7. 性能测试
  1. 准备工作
    首先用Carbon Copy Cloner (CCC) 将系统全盘备份。

    如果你有用Time Machine做备份的习惯则可以跳过这步。新系统不想再用Bootcamp,所以连Windows分区下的重要文件一起备份了。我的数据约240G,用了差不多两个小时。CCC的优点是可以直接用备份分区开机,因此建议选择分区到分区的方式备份。我当时为了节省空间选择了分区到映像(Image),结果恢复备份的时候需要多做两步,多了两倍的时间,得不偿失。

  2. 更换SSD
    目的是拆掉光驱,空出来的空间用来放SSD,为此先在Ebay买好了托架。2011版的MBP螺丝还是标准的十字形,很好拆。需要注意的就是螺丝不要乱放省得弄丢,我的习惯是用透明胶条把它们按相对位置固定在一起。

    拆解过程参考iFixit网站上的教程,很简单。但是教程里拆电池那步是多余的,可以跳过。

    打开后盖后,首先轻轻向上撬掉中间这三条比较宽的黑线。


    左上角这两根长螺丝要拿掉,右边那颗较小的则可以不用管它。


    胶条用来固定位置很好用。

    这根长线比较紧,不要硬拔,稍推回去一点再拔出来。

    拆掉的光驱,左边是用来替换的托架。

    光驱上的SATA接口和中间两个螺丝固定的这个金属小架都要转到托架上去。

    把SSD装到托架里。我买到的这个托架有四颗固定螺丝,上面的两根长螺丝碍事要拿掉,不然MBP上面的天线无法装回去。还好剩下两根螺丝似乎也可以固定得很紧。

    重新装好后后盖先不要上螺丝,以防出现问题还要重新拆一次。

  3. 重新分区
    因为上面备份的时候选错了,只好再做一个USB的Mavericks安装盘用来启动系统。还好我保存了系统的安装包,可以用下面的命令简单地创建一个:sudo /Applications/Install\ OS\ X\ Mavericks.app/Contents/Resources/createinstallmedia --volume /Volumes/Transformer --applicationpath /Applications/Install\ OS\ X\ Mavericks.app --nointeraction


    用USB安装盘启动系统后,启动磁盘工具,可以看到左边的列表里出现了SSD,说明安装成功了。

    在进行下一步前,需要保证两颗硬盘都是Mac扩展日志型(Mac OS Extended Jounaled)单分区并使用Guid分区表。先按此格式化SSD,再删除硬盘的Bootcamp分区(注意:进行此步骤后,原硬盘上的数据会全部丢失。另外如果想保留Bootcamp,则下面的步骤有所不同)将硬盘重新变成单分区。
    完成后,退出磁盘工具。选择工具栏上的终端,打开命令行窗口。

  4. 首先输入diskutil list这个命令会列出系统里的所有硬盘,找到128G和320G的编号,我这里是disk0和disk1。

    然后输入

    diskutil cs create Fusion disk0 disk1

    这里的Fusion可以自己改名,disk0和disk1则是上面列表里的编号。

    稍等一会儿后,进度条走完,出现 Finished CoreStorage Operation 说明创建成功。

    输入

    diskutil cs list

    下面将要用到图中那串字符,用鼠标选中,按cmd+c复制。

    输入

    diskutil coreStorage createVolume(这里按CMD+V粘贴刚才的那串字符)jhfs+ "MacFusion" 100%

    其中 MacFusion 是Fusion Drive的盘符,可以自己改名。当这步完成之后,Fusion Drive 已经创建完毕。退出终端,回到安装界面,可以看到 MacFusion 已经出现在安装列表里,大小等于原来的硬盘加上SSD。

  5. 恢复系统
    为了保证系统干净,我决定重新安装一次Mavericks,再从备份恢复。当安装进行到 “About a second remaining” 时,系统会卡在这里约30分钟,网上搜了下发现很多人遇到,不知道是Bug还是新Fusion Drive的关系。不要担心,找点别的事去做。

    系统装好后,我用秒表测试了下干净系统的启动时间,从按下电源到显示桌面约二十秒。

  6. 开启Trim
    为了保证SSD的寿命,打开系统的Trim优化是必不可少的。苹果设置了Trim功能只会在Apple自己的SSD上打开,自己安装的SSD就需要我们手动打开了。Trim Enabler这个软件虽然方便但是很多人不推荐,那么就用终端吧。首先备份要修改的文件,Sudo后需要输入密码。sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /IOAHCIBlockStorage.original然后用下面的命令打补丁,移除Apple对Trim支持的限制。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然后清除缓存
    sudo kextcache -system-prelinked-kernel
    sudo kextcache -system-caches重要:最后必须重启系统。重启后,打开系统信息里的SSD,可以看到下面的 Trim 支持 显示 “是”,说明改动成功。

    (需要时可以用下面命令撤销我们做的改动)
    sudo cp /IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

  7. 性能测试
    在用迁移助理从备份里恢复所有文件后,再测试启动时间,同样的QQ进程启动用了10:31-10:18=13秒。

    Blackmagic重新跑一次测试:读写分别是229MB/228MB每秒,这还是使用SATA II的结果。不管是数据还是系统的实际表现,我已经很满意了。

    总结:系统的启动时间从110秒缩短到13秒,提升90%;硬盘的速度从54.6提升到228.5,提升了320%。

Note:
更新:下面的说法是指10.8.2系统之前的情况。现在不分硬件,只要是10.8.3以后的系统都已经支持Fusion Drive.
也有说法说这种方法制作的Fusion Drive只是“看上去”是而已,但根据参考文章1里的测试,Fusion Drive是可以正常工作的,所以目前还没有定论。
另外似乎2011年初这一批MBP 13寸没问题,但15寸是两个SATA III接口,却反而无法DIY Fusion Drive.

本文参考了
Fusion drive on older Macs? YES!
[10.8教學] 自行 DIY 打造 Fusion Drive 雙碟合一環境!