我有一个用 Time Machine 从运行 OS X Snow Leopard 的 Mac 创建的稀疏包镜像,其中包含同一台 Mac 的备份,但包含许多不同的快照。我想提取存档中的所有文件,而不是从多个快照中复制同一个文件,这样就不会得到一百倍大小的数据。以下是我目前尝试过的方法。
我发现 sparsebundle 只能安装在运行 Snow Leopard 的 Mac 上,幸运的是,我正好有一台。然后,我尝试在终端中使用以下命令将文件提取到另一个磁盘:
ditto "/Volumes/Time Machine Backups/Backups.backupdb/" "/Volumes/newdisk/"
它只是不断复制文件,直到新磁盘写满。稀疏包的原始大小约为 425 GB,我尝试将其复制到 2 TB 的 SSD 上。之后我查阅了一些资料,发现 Time Machine 使用硬链接来链接到不同的文件和文件夹,而不会增加稀疏包的大小。之后我发现或许可以使用 rsync,我必须在 Snow Leopard 上从源代码构建 rsync 才能获得 3.2.3 版本,该版本应该能够保留文件和文件夹的硬链接。然后我尝试了以下命令:
rsync -aHAXE --numeric-ids "/Volumes/Time Machine Backups/Backups.backupdb/" "/Volumes/newdisk/"
它做了同样的事情,填满了 2 TB 的 SSD。输出看起来有点不同,我知道至少一些硬链接似乎被保留了下来,因为在我的 Windows 电脑上检查时,有很多 0B 大小的文件,我使用 Paragon HFS+ 驱动程序来读取文件系统。但这显然还不够。
我尝试复制所有快照,但每个文件仍然只有一个副本。稀疏包包含 2012 年至 2014 年的备份,其中肯定有一些更早的快照文件在 2013 年或 2014 年晚些时候被删除了。稀疏包的大小超过了 400 GB,尽管备份来自一台只有 250 GB 硬盘的 Mac。
我该怎么做才能从档案中取出所有文件,并且不产生大量重复文件?