更换硬盘后如何让 Time Machine 再次工作?

slh*_*hck 6 backup time-machine macos

在我的 Mac 上,我最近

  • 更换为新硬盘(例如硬盘故障后)
  • 将引导分区迁移到另一个分区

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

小智 10

使用 tmutil

免责声明:我扫描了tmutil联机帮助页并执行了这些步骤。时光机现在似乎正在快乐地倒退。我不知道所有这些步骤是否都是必要的,或者我是否按照正确的顺序执行了这些步骤。天啊。

首先禁用时间机器

$ 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/
Run Code Online (Sandbox Code Playgroud)

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

$ sudo tmutil inheritbackup /Volumes/TIME_MACHINE_VOLUME/Backups.backupdb/COMPUTER_NAME/
Run Code Online (Sandbox Code Playgroud)

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

然后运行:

$ sudo tmutil listbackups
Run Code Online (Sandbox Code Playgroud)

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


slh*_*hck 4

0. 注释

\n\n

首先,禁用时间机器。然后,请确保您有重要内容的备份,并且不要仅仅依赖时间机器磁盘。你可以破坏这里的东西。

\n\n

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

\n\n

1. 前提条件

\n\n

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

\n\n

您还可以在此处此处下载软件包。解压它,右键单击EnableACLs.app并选择“显示包内容”。导航到内容/资源并复制fsaclctl到您的主文件夹 ( /Users/<your-username>)。

\n\n

2. 找出您的新UUID

\n\n

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

\n\n

在此输入图像描述

\n\n

3.检查您的旧UUID

\n\n

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

\n\n
cd /Volumes/<time-machine>/Backups.backupdb/<your-mac-name>/Latest\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
sudo xattr -pl com.apple.backupd.SnapshotVolumeUUID "Macintosh HD"\n
Run Code Online (Sandbox Code Playgroud)\n\n

将其替换为分区的实际名称(在我的屏幕截图中,它是“Macintosh HD”)。正如您所看到的,在我的例子中,UUID 是匹配的。就你而言,他们不会。

\n\n

如果他们这样做了,请停在这里,可能是其他问题!

\n\n

在此输入图像描述

\n\n

4. 替换 Time Machine 卷上的 UUID

\n\n

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

\n\n
sudo fsaclctl -p /Volumes/<time-machine> -d\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
sudo /Users/<your-username>/fsaclctl -p /Volumes/<time-machine> -d\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,这是临界线。您需要将旧的 UUID 覆盖到当前磁盘之一(即通过“磁盘工具”找到的磁盘)。将 替换XXX\xe2\x80\xa6为您在开始时复制的 UUID。

\n\n
sudo xattr -w com.apple.backupd.SnapshotVolumeUUID XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX "Macintosh HD"\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以这可能看起来像:

\n\n
sudo xattr -w com.apple.backupd.SnapshotVolumeUUID 650DDECD-CC5E-3552-9960-2D50014A4BDB "Macintosh HD"\n
Run Code Online (Sandbox Code Playgroud)\n\n

完成后,再次重新启用 ACL:

\n\n
sudo fsaclctl -p /Volumes/<time-machine> -e\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
sudo /Users/<your-username>/fsaclctl -p /Volumes/<time-machine> -e\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n
\n\n

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

\n\n

这是收集自:

\n\n\n