如何从另一台计算机的 Time Machine 备份中检索文件?

Jam*_*sen 15 osx-snow-leopard permissions time-machine macos

真的是同一台计算机 - 我刚刚重新安装了 Snow Leopard。当我尝试从我的旧用户帐户打开 Documents 目录时,我得到

无法打开文件夹“文档”,因为您无权查看其内容。

我认为问题在于我安装 Snow Leopard 时我的用户帐户 ID 发生了变化。是 503;现在是 501:

ls -al /Volumes/ExternalDriveName/Backups.backupdb/ComputerName/2009-09-03-120049/ComputerName/Users/
drwxr-xr-x@ 43 503    staff  1462 Jul 20 15:14 gaius

echo `id -g` `id -u`
501:20
Run Code Online (Sandbox Code Playgroud)

我都试过chown -Rchmod -R,但都给了我

不允许操作

我还尝试通过 Inspector 更改权限。即使我以管理员身份进行身份验证,它们也都是灰色的。

有什么帮助吗?

小智 23

似乎 Apple 设置了一个 ACL,拒绝所有人(包括 root)删除或修改 Backups.backupdb 文件夹及其内容的所有权等,因此使用 sudo 或其他 root 访问权限无助于更改权限。

drwxr-xr-x@   4 501   staff    136 18 Jun  2008 backedupfolder
com.apple.metadata:_kTimeMachineNewestSnapshot     50 
com.apple.metadata:_kTimeMachineOldestSnapshot     50      0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown
Run Code Online (Sandbox Code Playgroud)

每个人都拒绝 add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown

您可以通过在 Time Machine 卷上设置忽略所有权来访问当前用户无法访问的文件夹。不幸的是,Apple 已从“获取信息”窗口中删除了 Time Machine 卷(或过去曾如此使用)的卷。

您将需要改为从终端为卷设置忽略所有权。

vsdbutil -d '/Volumes/TimeMachineVolume'
Run Code Online (Sandbox Code Playgroud)

您可以使用

vsdbutil -a '/Volumes/TimeMachineVolume'
Run Code Online (Sandbox Code Playgroud)

一旦 TimeMachine 再次运行,它也会重新启用该卷的所有权。

  • vsdbutil 技巧非常有效——让我从 Time Machine 恢复 TM 说我无权恢复的内容。 (2认同)
  • 是的,这也解决了我在 OS X 10.10 Yosemite 中的问题。唯一的问题是我必须使用“sudo vsdbutil -d 'Volumes/My Backup Drive'”并输入我的密码,因为如果没有它,您现在会得到“您必须是 root 才能执行此操作”。谢谢查理!詹姆斯,你应该考虑接受这个答案。 (2认同)

Arj*_*jan 7

您还可以以 root 身份调用“Enter Time Machine”。这要求 Finder 首先以 root 身份启动,因此仅适用于了解风险的人。在终端中,对于 Leopard 和 Snow Leopard:

须藤/系统/图书馆/CoreServices/Finder.app/Contents/MacOS/Finder

在 Snow Leopard 中,这不会(总是?)打开初始 Finder 窗口。不要单击 Dock 中的 Finder 图标(这可能会将您带到普通的 Finder),而是使用 Command-Tab 转到 Finder(这将是新的 root-Finder)。在这里,点击 Cmd-N 以打开一个新的 Finder 窗口。

新的 Finder 看起来像一个普通的 Finder,但您会注意到Finder 侧边栏中主文件夹图标旁边的root。当 root-Finder 处于活动状态时,输入 Time Machine(并再次验证root是否显示在主文件夹图标旁边)。这应该允许您浏览、删除或恢复您需要的内容(但是,对于最初的问题:它不会永久解决您的访问问题)。

(像往常一样,按住选项,同时单击时间机器图标会变成“进入Time Machine”到“浏览其他时间机器磁盘”如果你需要检查未关联到您的当前机器的磁盘。你可能不会需要是以 root 身份运行以执行此操作!)

完成后,弹出 Time Machine 卷(如果适用)。接下来,在终端中按 Ctrl-C 以停止 root-Finder。通常的 Finder 仍会运行,但在 Snow Leopard 中,Dock 中的指示器可能已经消失。运行killal Finder如果你烦恼。(如果您在仍然是 root 用户时忘记弹出 Time Machine 卷并且该磁盘在以后没有正确卸载,或者 Time Machine 在运行每小时备份时无法正确安装它,那么您可以简单地登录关闭作为一个简单的修复。)

(如果有人知道如何在不先运行 root-Finder 的情况下执行此操作,请告诉我们!运行sudo "/Applications/Time Machine.app/Contents/MacOS/Time Machine"不会给出预期的结果,我假设 Time Machine 星系窗口实际上是 Finder 的一部分。为了搜索引擎:“以 root 身份运行时间机器”,“以 root 身份启动时间机器”。)