我今天通过从备份复制系统恢复了 Mac OS X 10.6.2(之前是 10.6.3,无法启动)。数据目录未受到影响。
在数据目录中,我看到一些文件为 0 字节,并且在复制时出现权限被拒绝的错误,即使使用sudo cp
或 Finder 本身。有些程序则不同,它们会从表面上看待文件,认为没有权限问题(例如 zip),但它们会将文件视为零字节,这样恢复就结束了。
cp: .git/objects/fe/86b676974a44aa7f128a55bf27670f4a1073ca: could not copy extended attributes to /eraseme/blah/.git/objects/fe/86b676974a44aa7f128a55bf27670f4a1073ca: Operation not permitted
我已经尝试过sudo chown
,sudo chmod -R 777
但sudo chflags -R nouchg
最终结果并没有改变。
奇怪的是,这只影响我的.git
目录(可能是因为它们以句点开头,但重命名它们 - 这有效 - 不会改变任何东西)。
我还能做什么来获得这些文件的所有权?
编辑:这个问题来自 Stack Overflow,因为我最初以为这是 Git 的问题。这绝对不只是 Git。无论如何,这是为了帮助将一些评论放在上下文中。
答案1
看起来 Git 正在使用文件系统的高级功能(因此消息中出现“扩展属性”),而 BSD 子系统命令并不支持该功能,而且您使用的备份系统可能也不支持该功能。
如果您之前使用过 cp,请尝试使用备份系统自己的工具来恢复这些目录。
如果这不起作用,您可能需要重新克隆这些存储库和/或切换到更全面的备份系统。
答案2
您是否尝试过运行fsck
(好吧,我有点老派)或 Mac 磁盘实用程序来确保文件系统仍然一致?无论您的 10.6.3 问题是什么,它都可能影响数据分区。