很多时候,你以为做了充分的备份,信心满满开始系统重装、磁盘格式化等等,但是等你开始想恢复备份的数据。。。天哪,备份在哪里?天哪,备份怎么读取不了了?

上周因为最新的OS X 10.10发布,准备借此机会重装一次系统,就使用了一块500G的移动硬盘,用Mac OS X内建的TimeMachine对整个笔记本操作系统做了一次全面备份。原以为这样的备份万无一失 – 这个操作系统都clone了,就再也不会有遗漏文件了。谁知道就此埋下了一个定时炸弹。。。

悲剧的发生

这次我用于TimeMachine的移动磁盘空间只有500G,而我需要备份的笔记本电脑磁盘也是500G,经过一番数据清理以后,笔记本磁盘需要备份的数据大概有300多G,加上原先移动磁盘中的一些数据,勉强能够备份进移动硬盘的500G空间。

我先做了一次全面的TimeMachine备份,嗯,很好,刚好够备份。

然后信心十足地格式化磁盘,重装了一个非常干净的Mac OS X Yosemite。重装完系统以后,安装了一些必要的软件之后,再次连接了前面用来备份TimeMachine的移动硬盘,开始复制出一些必要的工作文件,开始一天的工作。顺便把新安装的Yosemite系统也做了一次TimeMachine备份。。。就此悲剧拉开帷幕!!!

中午吃完饭,看了一眼电脑。发现TimeMachine又开始定时备份了,这时还没有意识到问题。但是突然发现,用于备份TimeMachine的移动硬盘居然空出了300多G的空间。这意味着有备份数据被删除了。

马上看了一下 TimeMachine 备份,果然,最初做的一次备份,也就是在重装操作系统之前做的一次全系统备份数据丢失了 – 这可是唯一的完整数据备份,我原先计划是重装完系统后,再慢慢从TimeMachine备份中逐步复制恢复数据,顺便整理一下以往的文档。

现在悲剧了,原先我完全信任TimeMachine的完整备份能力,只做了这次镜像备份就没有再创建其他备份副本。这意味着可能数据丢失。

悲剧的原因

导致TimeMachine最全面的一份备份被删除的原因是:TimeMachine在磁盘爆满的情况下会删除掉最陈旧的备份,这个特性其实在TimeMachine的Performance设置中有说明

TimeMachine

这个删除最旧备份的策略在通常情况下是有效的,因为如果对一个Mac主机持续备份,一般情况下最需要保留的是最近几次备份;并且通常情况下,系统中的文件变化是有限的,最近几次备份已经能够满足有效的文件追溯。

但是,这次的经验教训是:

  • 同一个(有限容量的)存储不要同时提供两个或两个以上的主机做TimeMachine,因为主机的第一次备份是全备份,很有可能会把磁盘撑爆,导致TimeMachine删除掉旧备份,也就是你最近做的一次全备份
  • TimeMachine不是万能的,不能取代常规的备份 - 特别是磁盘空间有限且文件变化极大的环境。因为你无法控制某个时间的快照何时因为磁盘爆满而被删除。总之,磁盘空间要有富足,并且要有告警措施,确保磁盘空间在一定阀值时通知你进行干预处理。

挽救

当TimeMachine再创建新的备份并不断覆盖数据的时候,要果断终止备份,这样先前删除的快照如果没有被覆盖,还有可能通过数据修复软件进行恢复。

数据是无价的,毕竟自己积累的家庭照片等等可能在很多年以后有无法估量的价值。所以,花费了99刀购买了Data Rescue 4进行数据扫描修复,挽回了一些损失。


TimeMachine原理

既然因为对 TimeMachine 机制理解不足导致盲目信任丢失了数据,那就好好学习一下 - 以下是搜集的相关知识点,参考 全面认识Mac的Time Machine强烈推荐此文,原理和实践写得条理清晰

第一次启动Time Machine以后,软件会对整个整磁盘做一个完整备份,以后每个小时,Time Machine通过Mac OS X系统的FSEvents(文件系统事件)进程对系统的所有变化进行持续的追踪。当发现过去一小时的系统发生变化以后,Time Machine对那些变化的文件进行备份,属于渐进备份(incremental backup)。以后每天会将头一天的小时备份自动清除,每周会将上一周的每天备份自动清除。这样在它节约了备份空间的同时,保持了一套完整的系统备份。

“在MacBook Air等苹果笔记本电脑里,若电脑没有连上Time Machine硬盘(或超出了Time Capsule的无线信号覆盖范围),系统可以智能地把文件临时备份到电脑的本地硬盘上。我们称新建的备份文件为“快照”。”

进入 Time Machine 浏览器(用于恢复数据)后,本地快照将与常规备份一起显示在时间线上,二者以不同颜色加以区分。灰色刻度标记代表本地快照,粉色刻度标记代表存储在外置备份磁盘或 Time Capsule 中的备份。注:如果笔记本电脑未连接到外置备份磁盘或 Time Capsule,则粉色刻度标记将变暗。

若要进行系统恢复,重新启动您的 Mac,并按下 Command 键和 R 键 (Command-R),然后使用“从 Time Machine 备份进行恢复”实用工具,选择“从Time Machine”恢复,然后依照指示操作。

支持Time Machine的软件

Apple自带的软件iWork套件、文本编辑都支持Time Machine的存储模式,可以“进入Time Machine”恢复到先前的版本。第三方的软件也有不少支持,例如:Pixelmator、OmniGraffle、Scapple、PlistEdit Pro等。支持版本管理的这些软件都有一个特征,就是点击标题栏文件名可以进行重命名。

文档快照默认的存储周期是1小时,编辑过程中如果主动“command+s”进行保存,也会存储到Time machine中。盒盖休眠或者是正常关机,系统会自动保存最后的文档状态。

另外因为有本地快照的缘故,即便是没有连接到备份硬盘,系统依旧能访问本地快照中的版本历史记录。除了点击恢复来恢复整个文档以外,在历史版本和当前版本之间还可以通过复制和粘贴来修改内容。

排除在Time Machine之外

Time Machine使用FSEvents,不需要扫描硬盘,备份时使用的系统资源较少。FSEvents会按照时间周期定时对发生变更的单个文件重新备份,这导致Time Machine遇到类似于虚拟机这样的超大单个文件时会非常占用空间。

iPhoto、Aperture、Papers、DEVONthink Pro这样以库为存储单位的软件,面对Time Machine时也是个问题,Apple自家的iPhoto和Aperture库要好一些,不会因为几张照片的变化而备份整个的库,不过有网友也反应过在迁移向导的还原操作中Aperture出现的Bug,Aperture库还原的只是增量备份的部分,并不完整。

如果备份磁盘空间有限,面对这些文件时需要将它们排除在Time Machine的备份之外。

另外下载目录更像是个临时目录,其中的内容每天变化很多,而且多数没有备份的意义,所以这个也可以排除在备份之外。