使用 tmutil

使用 tmutil

最近,在我的 Mac 上,

  • 更换了新硬盘(例如硬盘故障后)或者
  • 将启动分区迁移到另一个分区

我该怎么做才能让 Time Machine 再次正确备份我的数据?它不再进行增量备份。

答案1

使用 tmutil

免责声明:我浏览了tmutil手册页并执行了这些步骤。时间机器现在似乎正在顺利备份。我不知道所有这些步骤是否必要,或者我是否按照正确的顺序执行了它们。YMMV。

首先禁用 Time Machine

$ sudo tmutil setdestination /Volumes/TIME_MACHINE_VOLUME
$ sudo tmutil associatedisk -a /Volumes/MACINTOSH_HD/ /Volumes/TIME_MACHINE_VOLUME/Backups.backupdb/COMPUTER_NAME/Latest/MACINTOSH_HD/

这会告诉 Time Machine 将MACINTOSH_HD新卷备份到/Volumes/TIME_MACHINE_VOLUME/Backups.backupdb/COMPUTER_NAME/Latest/MACINTOSH_HD/旧卷的旧备份存储库。在我的情况下,新旧卷都具有相同的名称。

$ sudo tmutil inheritbackup /Volumes/TIME_MACHINE_VOLUME/Backups.backupdb/COMPUTER_NAME/

这会将旧的备份存储库连接到新的卷。

然后运行:

$ sudo tmutil listbackups

要列出备份,如果上述操作有效,您应该会看到旧卷的所有备份。

答案2

0. 注释

首先,禁用 Time Machine。然后,确保备份了重要内容,不要只依赖 Time Machine 磁盘。这里可能会造成破坏。

另请注意,只有当您想要再次进行增量备份时才应执行此操作。如果您不关心以前的备份,则可以跳过此操作,只需让 Time Machine 创建第二个备份即可。

1. 先决条件

无论如何:您需要该fsaclctl命令来执行以下步骤。如果您使用的是 Snow Leopard,你可以从 Leopard 安装盘中获取它。在 Leopard 上,它已经包含在内(跳到下一部分)。

您还可以下载一个包这里或者这里。解压后,右键单击启用ACLs.app并选择“显示包内容”。导航至内容/资源并复制fsaclctl到您的主文件夹 ( /Users/<your-username>)。

2. 找出你的新 UUID

打开磁盘工具.app,然后选择信息在您的 Mac 磁盘上。在这里,将您的 UUID 复制到其他地方。您稍后会需要它。

在此处输入图片描述

3. 检查你的旧 UUID

然后,打开终端并转到 TM 磁盘上的最新备份:

cd /Volumes/<time-machine>/Backups.backupdb/<your-mac-name>/Latest

分别将time-machine>和替换<your-mac-name>为您的 Time Machine 卷的名称和 Mac 的名称。现在,让我们找出当前存储在磁盘上的 UUID:

sudo xattr -pl com.apple.backupd.SnapshotVolumeUUID "Macintosh HD"

将其替换为分区的实际名称(在我的屏幕截图中,它是“Macintosh HD”)。如您所见,在我的情况下,UUID 匹配。在您的情况下,它们不匹配。

如果他们确实这样做了,就此停止,问题可能出在其他地方!

在此处输入图片描述

4. 替换 Time Machine 卷上的 UUID

您现在需要使用fsaclctl命令禁用驱动器上的 ACL 保护。

sudo fsaclctl -p /Volumes/<time-machine> -d

如果您已将其复制到主文件夹,请改用以下命令:

sudo /Users/<your-username>/fsaclctl -p /Volumes/<time-machine> -d

现在,这是关键的一行。您需要将旧的 UUID 覆盖为当前磁盘的 UUID(即通过磁盘工具找到的 UUID)。用XXX…您在开始时复制的 UUID 替换。

sudo xattr -w com.apple.backupd.SnapshotVolumeUUID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX "Macintosh HD"

因此这可能看起来像:

sudo xattr -w com.apple.backupd.SnapshotVolumeUUID 650DDECD-CC5E-3552-9960-2D50014A4BDB "Macintosh HD"

完成后,重新启用 ACL:

sudo fsaclctl -p /Volumes/<time-machine> -e

与以前一样,如果您刚刚将其复制到主文件夹,请执行以下操作:

sudo /Users/<your-username>/fsaclctl -p /Volumes/<time-machine> -e

别忘了重新启用 Time Machine,看看它现在是否能正常工作。请注意,下一次备份可能需要一段时间,甚至几个小时。


我曾经做过类似的程序,这是在我的 Mac 更换逻辑板后必须做的。

这是从以下来源收集的:

答案3

关于 10.7+:

请注意,slhck 的详细回答不适用于 10.7 及以上版本。对于 10.7+ 版本,请参阅tmutil手册页、章节inheritbackupassociatedisk

答案4

就我而言,上述答案很有帮助,但我对其进行了一些修改。

在阅读本文之前,我试图使用继承备份命令,但虽然它没有以错误完成,时间机器仍然没有看到我的磁盘和我的稀疏束作为备份。

首先需要的是设置目的地命令。现在我写这篇文章的时候我的 Time Machine 备份正在更新!
所以最后我首先做了:

sudo tmutil associatedisk -a /Volumes/Macintosh\ HD /Volumes/Time\ Capsule/Backups.backupdb/<mymacname>/Latest/Macintosh\ HD/

进而:

sudo tmutil inheritbackup /Volumes/Time\ Capsule/<mymacname>.sparsebundle

相关内容