升级2012年版MacPro Book

目前的苹果产品可以说是绝对封闭的体系了,基本上没有人会打开外壳进行一些内部硬件的升级改造,而且基本上也没有了这样的可能。可以说2012年版的MacBook Pro是最后一个可以用户升级硬件的苹果产品了。

正好本人手头的这台苹果电脑就是这样一个产品。平时如果只是做一些基本都操作,也就凑合了,随着iPhone容量的不断增大,同步几次照片后,就开始发现机器慢的不得了,硬盘空间完全没法满足人民群众照片数量日益增长的需求了。 但是,到底是苹果的产品,其做工和用户体验一直还是保持水准的,内置的i5处理器处理器算力倒一直都不是瓶颈,可以考虑升级一下其他的部分。

关于这个电脑的技术数据可以参考苹果官网。其中可以方便升级的部分主要是存储部分,2012版的MacBook均采用了标准的PC配件,而且操作系统上没有加任何锁定,非常人性。

内存,标配两个单条的2GB 1333MHz DDR3内存,也就是总共4GB容量。在这个年代,这个容量操作系统自己用都基本够呛了。辛亏本人在内存价格没有太涨价的去年进了两条金士顿8G DDR3,一下子就把这台机给喂饱了。顺手,将两个拆下来的内存条给了我后来组装的NAS使用。看看今天翻了好几倍的内存价格,感觉自己真是赚到了。有了16GB内存保航,基本上运行所有程序,都不太会出现内存不够的问题,瞬间感觉机器年轻了好几岁。

相比换内存,换硬盘的过程就要复杂的多了。内存只要规格一致,基本就不会翻车。第二,内存拆装相对来说还是比较简单的。整个拆装过程中,除了后盖,不会有其他元件影响内存条的拆装。而最不同的地方,硬盘中有数据和操作系统。除了硬件的安装,还要注意系统,软件,数据三个方面的相关处理。

更换前的准备

首先,为了更换硬盘,我采购了如下的物件

  • SSD一块,容量512GB,和内置硬盘一样。这是推荐,如果买了256G,或者320G的,请参考后面数据备份部分的内容。
  • 机械硬盘一块,7mm厚度,2.5英寸大,容量越大越好,我选了一个希捷的2T,转速不要太高,否则太吵。
  • 2.5寸硬盘盒一个,USB接口要兼容当前电脑的USB。
  • USB 光驱盒,可以将内置光驱拆下来后作为外置USB光驱使用。
  • 能开苹果电脑的螺丝刀一套

另外最好准备一些数据备份的工具

  • 时光机器 Time Machine,可以用外置硬盘做,也可以用NAS做备份机。虽然我采用的过程基本数据有备份,不过建议还是备份一下,毕竟磁盘有价,数据无价。
  • 数据拷贝工具,这里可以选择OS X系统的磁盘拷贝工具,不过还是建议采用Carbon Copy Cloner  (或者简称ccc)来进行数据拷贝。

最后,磁盘换成固态硬盘SSD后,必须要做的一件事情就是启用Trim功能,否则访问的速度和寿命都会有很大的折扣。其他主要操作系统,都会自动开启Trim功能,但OS X只会在苹果原装的SSD上开启这个功能。所以,硬件安装后必须启用Trim功能。

好了,预备知识完毕,我们开始第一步:

数据迁移

请注意,这里第一步数据迁移之前,我其实来也用NAS的Time Machine功能备份了完备的数据。

采用ccc来拷数据的好处就是,用户可以选择完全镜像磁盘,还是只是拷贝选择的一些目录。另外,ccc也可以帮用户在备份磁盘上建立一个紧急恢复区。这些还是非常实用的。

由于我们有两个磁盘,我的规划是

  • SSD主要作为操作系统,应用软件的磁盘。为启动关机,软件启动加速。
  • 大容量磁盘用来保护用户数据。

所以,在用CCC来拷贝的时候,磁盘只备份了用户数据目录/Users/xxxx下的内容。为了方便,和可靠,SSD中则保留备份整个源磁盘的数据。如果新买的磁盘容量不足以拷贝所有的数据。这时候,也许就要决策一下,是否不要拷贝/Users目录下的所有内容,而进行一部分的选择。

数据迁移需要使用前面准备的硬盘盒来作为媒介。分别将磁盘和SSD装入到硬盘盒中,进行数据拷贝。数据迁移完成,验证之前,完全不要打开电脑外壳。这样也减少了盘除了问题,来回拆装电脑的风险。

将硬盘装入硬盘盒,通过USB连接电脑后,首先用内置的磁盘工具进行格式化操作。如果有磁盘检查工具,也可以扫描一下(不知道在USB模式下是否还支持SMART数据访问)。然后,就可以用ccc根据上面提到的数据分配方式来进行漫长的数据拷贝工作了。SSD盘作为系统盘,应该考虑为之创建系统恢复区。

本人在用一个USB3.0的硬盘盒拷贝数据过程中,磁盘的最大拷贝速度大约在30MB/s,SSD在盒子里速度略微快一点,可以达到38MB/s。如果有几百GB的数据,还是需要几个小时的时间的。

数据验证

拷贝完成后,首先要验证一下数据完整性。其中最主要的就是操作系统的完整可用。我的SSD虽然选择了拷贝所有数据,结果占用容量上两者相差很多(几十个G),心里有点不安。

首先系统关机。然后将SSD装入硬盘盒,并连接电脑USB。 按住option按键不放,按下电源键,直到出现让用户选择硬盘启动的界面再释放此键。选择SSD启动。

在实施之前,网上说USB盘启动如何之慢,难以忍受。结果50秒左右就启动了起来,而原来的磁盘启动时间也要一分半。可见USB口都不再是速度限制的瓶颈,磁盘本身才是速度杀手啊。

用USB连接的SSD启动后,我还用time machine也检查了一下。结果说没啥可以备份的——说明这个ccc的拷贝还是非常靠谱的。

更换磁盘

关于如何拆卸磁盘更换,我就不在这里累述了,建议还是直接看iFix上面的专门文章,写的非常的详实具体。这篇文章上只介绍了如何拆卸下来,没有说如何装回去。但从下往上倒着读,你会发现组装的顺序也是完全适用的。

查下来的光驱,建议还是花几十块买个盒子包装一下,做一个外置光驱,家里的电脑都可以用起来了。

使能TRIM

装好机器后,再次上电,就会自动的从SSD盘启动,开机速度一下子到了30秒。打开软件,真是感觉秒开。不过,这时候,如果忘记为SSD盘开启TRIM,这样的速度感,很快也就会没有了。

苹果是不会主动为第三方SSD打开TRIM支持的,系统中也没有界面可以直接设置。我找了半天各种方案,找到了这个不用安装软件,而且各个OS X版本都可以使用的方法

首先备份系统文件:

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

然后根据不同的操作系统修改系统设置

# 10.9.4 & 10.9.5
sudo perl -pi -e 's|(^\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

# 10.8.3 to 10.9.3
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

# 10.7.5, 10.8.1, 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

最后清除缓存,使能设置

sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches
sudo touch /System/Library/Extensions/

 

重启电脑后,在系统信息中可以查看TRIM是否真的已经使能。

转移用户数据到磁盘

我的目的是用户的数据放在大容量的磁盘上,而现在SSD还是保留了所有的用户数据,当下载,访问文档,默认的目录目前还都是SSD盘上的/Users/目录下的数据。

苹果系统非常的智能,如果你把这些用户目录下的专有目录转移到新的位置,系统会自动识别,很多软件也会自动的知道并修改。但我没有尝试过跨盘的转移操作。况且新的磁盘中,也有所有的用户数据。

发表评论

电子邮件地址不会被公开。 必填项已用*标注