使用ssd及数据迁移

给笔记本 Macbook pro 2012 版添加了一个 ssd,ssd 买的是 intel 530 系列,容量为 240G,看中的是:1. 存储上使用 MLC 颗粒,主控芯片没研究; 2. 看评论都提到 intel 牌子的稳定性好,当然大家只是说了一下,没说明怎么稳定; 3. 公司服务器上有用到 intel 的 ssd,工作期间暂无遇到故障。

系统版本是 Yosemite 10.10(14A361p),测试版本。

ssd 的更换上,考虑两个方案:

  1. 直接用 ssd 替换现有的硬盘,只使用 ssd
  2. 现有的硬盘不动,把 ssd 安装到光驱位,两者位置最好不要调换

准备工作包括有:

  1. 检查螺丝刀能否拆开笔记本,需要两把螺丝刀:拆卸笔记本背部的十字螺丝刀(也用于拆光驱)、硬盘四角的六角螺丝刀(我是用小钳子转松拧开)。购买 ssd 前我为了减轻笔记本重量先拆掉了光驱,硬盘则更容易拆卸。
  2. 买一个 ssd
  3. 对于方案1,买一个外置的 usb 硬盘盒,用来容纳换下来的机械硬盘
  4. 对于方案2,买一个光驱位托架,容纳 ssd
  5. 数据要实现无缝迁移,不重装系统,不丢失配置。预备方案:a. 使用软件 Carbon copy cloner,但对系统版本有限制; b. 在「终端」使用 rsync + bless。

硬件上,我本想使用方案1,只使用 ssd,这样笔记本就可以随意地移动,但是我发现系统的「磁盘工具」认不到该 ssd,心好累。额外再买了一个光驱托架,尝试方案2,倒正常了。

硬盘位置认不到 ssd 的问题,考虑到该 ssd 已经有最新 intel 的固件,也看到有人评价在同型号笔记本上能正常使用(系统是10.9),怀疑是测试版本的系统导致。硬盘位置和光驱位置的这两个 sata3 接口初步判定是一样的,故障原因可能有:

  1. 测试版本的系统
  2. ssd 的固件,当前的版本是DC32
  3. 笔记本上的两个 sata3 接口的兼容性,两个都是Intel 7 Series Chipset,以及AHCI Version 1.30 Supported


对于方案1,更换思路为:

  1. 把笔记本的硬盘拆出来,放到外置 usb 硬盘盒
  2. 拿到空白未格式化的 ssd, 直接装到硬盘位置。想法就是尽可能早地确认 ssd 在「最终位置」上能否正常工作
  3. 开机按住 option,能够看到外置 usb 硬盘里的系统,启动该系统,这是之前一直在使用的系统
  4. 进到系统后,打开「磁盘管理」工具,但我在该软件中看不到 ssd,该方案中断,否则可以继续
  5. 在「磁盘管理」中对 ssd 进行分区
  6. 安装并使用 Carbon copy cloner 来转移数据,如果 ssd 空间比机械硬盘的小,需要在「用户」目录中排除一些文件。相比TimeMachine,看中就是这个软件的这点可选择性。好吧,我也没TimeMachine备份。
  7. 迁移数据后设置从 ssd 启动系统
  8. 拔掉外置 usb 硬盘

对于方案2,更换思路为:

  1. 拆下光驱,把 ssd 放到光驱托架
  2. 从现有的机械硬盘启动系统
  3. 打开「磁盘管理」工具,能看到光驱位置上新装的 ssd,否则该方案中断
  4. 在「磁盘管理」中对 ssd 进行分区
  5. 安装并使用 Carbon copy cloner 来转移数据
  6. 迁移数据后设置从 ssd 启动系统


暂时勉强接受方案2,但在数据迁移中,由于系统是测试版本的 Yosemite,需要使用最新版本也是测试版本的 Carbon copy cloner beta 5, 然后发现根本没有转移数据到新 ssd 上,简单的事情变麻烦了。对于「更换硬盘、数据迁移」这两者,觉得上面的更换步骤太容易了。

苦逼的手动迁移过程如下,其实做完后,反而觉得这个方式更简单。

打开「终端」,使用命令rsync + bless来做数据迁移,也好,又少了一个依赖的软件。

  1. rsync操作,参考HOWTO: Backup Your Mac With rsync
    新建一个文件backup_excludes.txt,排除一些文件,以及排除几个大容量的目录,这些目录最后再手动按需要复制到 ssd 上就好了

     popozhu $ cat backup_excludes.txt 
     */.Trash
     /private/tmp/*
     /private/var/run/*
     /Users/popozhu/Documents/*
     .Spotlight-*/
    

    rsync 命令使用简单的几个参数就可以了,由于目标盘是一个空白磁盘,不需要参数--delete。同步的源目录自然是当前系统的根目录,而目标目录,通过命令df -h找到 SSD 盘在系统中的挂载点,比如我给 ssd 命名为MacintoshSSD,其挂载到/Volumes下,目标目录最后为/Volumes/MacintoshSSD

     rsync -av -x -S --exclude-from backup_excludes.txt / /Volumes/MacintoshSSD &
    

    一开始 rsync 会计算一个文件列表,可以在进程管理器中看到一个rsync进程读取越来越多的数据。然后就是漫长的读写等待,我同步80G数据,大概3个小时 Orz。后来的 rsync 时,我打开 itunes 让其播放音乐,然后静音,避免电脑进入睡眠,然后睡觉了。

    由于在 rsync 使用了参数-v,同步时会输出当前处理的文件,可以大概估算下同步到哪个目录。

    rsync 同步,能保留文件、目录的用户id、分组id,以及权限,这些是非常重要的。总之是没有差别地迁移「系统文件」+「用户数据」到新的 ssd。需要了解哪些文件、目录是必须的,哪些又是没必要的。但既然使用到「终端」,我想这个问题应该不是什么大问题:清楚知道当前命令在做什么事情。

  2. bless操作
    看了上面的博客,才知道bless这个命令,简单来说,就是引导 EFI 的加载程序从 ssd 的那个目录加载操作系统。
    对于当前 ssd 的挂载点/Volumes/MacintoshSSD,需要执行:

     sudo bless -folder /Volumes/MacintoshSSD/System/Library/CoreServices
    

    一开始我不知道要 bless,从 ssd 启动时等了好久,还以为我 rsync 后文件有错误,看到上面博客提到的bless,如获至宝。

    至此,设置从 ssd 启动系统就可以了。


当然,我做的不止这些。在对 ssd 格式化之后,做 rsync 之前,我使用 diskutil 在 SSD 上也建立了一个恢复分区Recovery SSD,从机械硬盘上的Recovery HDD分区拷贝了一份数据。因为后续我只想使用 ssd,机械硬盘是打算外置留在家里做备份使用的。那么假若系统有故障需要恢复,就可以直接启动 ssd 上的恢复分区。

至于开启Trim,那则是默认要做的。

另外,也用xbench 1.3这个free软件,做了一下磁盘读写测试,记录下来。计划一段时间后再做一次对比,看看读写性能变化如何。



哎,安装了两个硬盘,笔记本的发热量反而变大了,由于考虑到有机械硬盘,我还是不敢大动作移动笔记本。方案2蛮鸡肋的。

又遇到,使用 ssd,解决了磁盘io缓慢, cpu 变得狂野起来,cpu 使用率很容易就飙高,也进一步加大笔记本发热,Orz

由于使用了光驱托架容纳 ssd,还得准备接受光驱托架故障的情况。。。

anyway,最后还是成功用上了 ssd 并完美迁移了系统和我的个人数据,开机即用,文件都跟原来一样的感觉。



2014-10-27 更新:

更换两天后,还是买了个光驱支架,把 ssd 安装到光驱位置,同时拆掉了机械硬盘,单独使用 ssd。

最后确定,硬盘位置不支持该 ssd。



– EOF –

Categories: mac
Tags: mac