MacBook 466/467 固态硬盘

Air 的闪存速度让我印象深刻, 在做了许多功课以后, 终于决定从京东订了一块美光 M4 128G.

对于品牌的选择, 查了很多资料后发现美光比较激进, 而 Intel 比较保守. 同时美光的价格也更亲民.

关于 MacBook 466/467:

  • 更换硬盘只要打开电池后盖即可, 不必大动干戈.
  • SATA-2 接口, 传输带宽为 3Gb/s, 但内置的硬盘和光驱都工作在 1.5Gb/s 模式下.
  • 原装硬盘厚度为 9.5mm.
  • 当电池耗尽时会进入深度睡眠, 如果装在光驱位会出现一睡不醒的问题, 装在硬盘位则没有该问题.

关于美光 Crucial M4:

  • M4 是目前最新款.
  • 接口是 SATA-3 6Gb/s.

美光 M4 安装在 MacBook 上, 接口协商速度为 3Gb/s, 有点小浪费, 但毕竟可以发挥出最大效能.

具体的安装过程可以看 iFixit 的图文教程.

安装后的优化.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env bash
#
# SSD 优化脚本.
#
# 用法:
# 保存该脚本为 ssd.sh
# 在终端里运行 sudo ssd.sh

# 关闭 Sudden motion sensor
# SMS 用于笔记本在突然移动时通知硬盘碰头复位, 以保护机械硬盘不受损伤, 对于固态硬盘没有用处.
pmset -a sms 0

# 删除 Hibernate
# 当电池耗尽时, 系统会将内存中的数据写入硬盘, 把固态硬盘安装在光驱位的必须关闭深度睡眠, 放在硬盘位的取消这个功能也可以节省与内存大小相同的硬盘空间.
# 如果想保留深度睡眠, 请删除下面这一节代码.
f=/var/vm/sleepimage
if [[ -e $f ]]; then
pmset -a hibernatemode 0
rm $f
fi

# 取消 atime
# Mac 系统有个文件最后访问时间, 当你查看文件时, 会将当前时间写到 atime 里, 取消这个功能可以减少硬盘写入的次数.
f=/Library/LaunchDaemons/com.apple.hfs.noatime.plist
if [[ ! -e $f ]]; then
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.hfs.noatime</string>
<key>ProgramArguments</key>
<array>
<string>mount</string>
<string>-vuwo</string>
<string>noatime</string>
<string>/</string>
</array>
<key>RunAtLoad</key>
<true />
</dict>
</plist>' > $f

fi


# 打开 TRIM
# 从 Lion 开始, 系统已经支持 SSD TRIM 指令, 但只对 Apple SSD 生效, 下面这段代码会对驱动打补丁, 将 "Apple SSD" 替换为空白, 借此激活 TRIM 功能.
f=/System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage
if [[ ! -e $f.original ]]; then
cp $f $f.original
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' $f
kextcache -system-prelinked-kernel
kextcache -system-caches
fi