前几天 MBP 没放稳,掉地上了,硬盘出现了坏道。之前工作数据都是保存这个硬盘的一个 NTFS 的分区中,平时的数据备份是利用 Bootcamp 进入 WIN7,通过 FastCopy 进行全盘的同步备份到移动硬盘。这么做是因为 Mac 的文件复制过程极为简单,只会傻傻的覆盖,想要同步备份一次,时间太漫长了(几百 GB 的文件写入移动硬盘,不会因为文件完全一样的而自动跳过),可无奈之前手贱,不小心把 Bootcamp 的分区抹掉了。又因为存在一个 NTFS 分区,重新创建 Bootcamp 分区是不可能的。因为要更换硬盘,那么系统也要重新安装,但是应用程序的配置如何迁移?想到还好Mac的磁盘工具本身就有复制功能,索性把 Mac 系统的分区通过磁盘工具直接复制到移动硬盘上,然后通过本身的数据迁移工具移动过来,这样是最方便的。决定实施,可在备份到10%左右的时候,却提示错误:input output error。一开始还以为是移动硬盘的问题。索性又换一块外置大硬盘。结果还是同样的错误。后来通过爬文,发现有个东东可以备份 HFS 分区,而且对岸做的,叫 clonezilla(http://drbl.nchc.org.tw/clonezilla/clonezilla-live/)。于是下载刻盘试着做备份,做到20%左右依然出错。这下麻烦大了。

理了下思路,这种状况,不得已先把重要的 NTFS 分区的数据进行备份。为了节省时间,也只能拆掉硬盘,通过硬盘盒和PC连接了。在一台 PC 上使用 Fastcopy,对之前的备份移动硬盘进行了一次同步,半小时左右备份完成,并跳过了一些已经物理损坏的文件。接下来继续解决 Mac 的系统分区,先在 PC 上安装 Macdrive8,然后加载出了 Mac 系统分区。接下来逐步分析了一下 Mac 系统的目录结构。决定不做全盘备份,直接复制应用程序和配置文件。我根据自身的需要对以下应用程序做了备份,先把需要备份的应用程序在直接复制出来,然后根据需要的保留,复制了以下应用的配置:

AddressBook
~/library/Application Support/AddressBook
地址簿的内容

iTunes
~/Music/iTunes
~/Library/Application Support/MobileSync/Backup
里面包含了专辑音乐、Podcast、未下载完成的项目,IOS 的应用程序等等,会比较大,也可以根据需要选择保留,不保留的就删掉.
另一个是 iTunes 对移动设备的备份目录,备份了 iPhone,Touch 等设备,需要的话可以保留,不需要的话也不会影响 iTunes 的正常运行.

iPhoto
~/Pictures/iPhoto Library

PhotoBooth
~/Pictures/Photo Booth Library

Lightroom
~/Pictures/Lightroom
如果你安装过多个版本,里面会有根据版本区分的目录,选择自己需要的就可以了。记住不要丢弃里面的 backup,以免复制的时候因为缺少文件出现错误却不能恢复。

Mail
~/library/Mail
~/library/Mail Downloads
邮件和邮件附件

Evernote
~/library/Application Support/Evernote

iMessage
~/library/Messages

Fonts
~/library/Fonts
之前自行安装过的字体

QQ 2.1
~Library/Containers /com.tencent.qq/Data/Library/Application Support/QQ
这个路径这么长,是因为这个版本已经支持了沙盒,如果是旧版本,那么应该备份的是~/Library/Application Support/QQ。两者内容和格式一样.

Firefox
~/library/Application Support/Firefox
配置,扩展等

Chronories
~/Library/Application Support/Chronories/

备份完毕后,就可以重新安装系统了,事先已经通过U盘生成了一个 Lion 的系统安装程序,插入 USB,按option启动,选择 Mac OS X Install,进行一个全新的安装。安装完成后,摘下硬盘,通过 PC 把以上备份的数据全部归位,之后再安装回去开机,安装好需要的程序,打开系统更新,更新了三个多小时终于更新完成。然后依次打开应用程序检查:

Firefox:正常,书签、配置和插件全在;
Mail:正常;
QQ:正常;
iTunes:正常
iPhoto:提示版本过低,再检查系统更新,提示没有更新,只好在 Apple 的官方网站上下载了iPhoto 9.1 和9.3的补丁,依次升级后,提示数据过旧,是否升级(看来之前的iPhoto是基于9.1和9.3之间的),选择升级,很快数据正常了。
PhotoBooth:需要手工指定一个目录,但是发现根本无法选择住之前放进去的备份,只好新建一个库,然后关闭程序,手工把之前的数据移动到新建的库,再次打开,正常;
Chronories,打开后提示输入密码,输入后提示 Unable to load database。关闭程序,手工修改 Database.noindex 为 Database.noindex1。重新打开 Chronories,软件自动创建了一个新的 Database.noindex,关闭程序,用 Database.noindex1 的文件内容覆盖 Database.noindex。重新打开 Chronories,数据正常了。

当然,这么做也是有小缺点的,之前通过 AppStore 下载的应用程序是已经无法打开了,因为涉及到了证书和账号相关,这种如果通过手工迁移起来不知道原理,难度是挺大的,但是既然是已经下载过的,重新对照名称下载一次即可。

以上全部操作完成后,意识到了 Mac 系统架构的优秀性:首先是程序和系统之间非常独立,互不干扰,文件架构很清晰。轻松的打开各个文件夹根据名称,就可以判断对应的功能是什么。移植和备份也非常简单,需要备份时只涉及配置文件即可。不像 Windows,各种零散的配置遍布各个位置,以及各种系统 DLL 散落,另外还有另人头疼的注册表。所以对于需要经常备份Mac系统配置的,还是需要寻找个第三方的定时备份软件,指定备份Application Support和应用目录就可以了。

更新:
其实有个数据迁移的神器,叫 Carbon Copy Cloner(官方网站),用了一次才发现太省力了,推荐。