【警告】OneDrive 可能会使磁碟工具程式过敏

【警告】OneDrive 可能会使磁碟工具程式过敏

本文写于 2019 年 3 月 22 日。经微软 OneDrive 团队的人在此之后的解释可知:该问题不会对 SSD 造成器质性损毁,但 OneDrive 最近的新功能导致 macOS 的磁碟工具程式在检修 APFS 卷宗时会出现过敏现象。详情:v2ex.com/t/547263#

至于 OneDrive 最近这次 Files-on-Demand 功能对特定的 BSD Tag 的依赖是否规范,在 V2EX 的讨论目前也在持续进行中。详情:v2ex.com/t/547263#

我记得,至少最近几个月开始,我每次用磁碟工具检查系统时、都会出现类似「warning: inode_val: object (oid 0x??????): invalid bsd_flags (0x10)」的提示。上网爬文之后,发现很多人都遇到这问题、且无一例外地都在用 Microsoft OneDrive:

remove warning: inode_val: object : invalid bsd flagsonedrive.uservoice.com

执行下面的命令就可以揪出元凶(我只保证可用于 bash 和 pwsh):

find / -inum $((0x??????)) -print 2> /dev/null

注意请将上文的西文问号换成 Disk Utility 的错误讯息当中的对应十六进位代号……

会看到这样的萤幕输出结果:

一般情况下会有一个结果(假设只有一个用户在用 OneDrive):

「/Users/你的终端用户名称/OneDrive」

如果有更多结果的话,那就是这种档案系统错误被拍摄到 Time Machine 本地快照当中了。

如果你实在不放心用 OneDrive 的话:

  1. 备份所有帐户的本地的 OneDrive 资料,确保这些资料已经全部上传或转移备份。
  2. 用 AppCleaner 删掉 OneDrive、且删掉本地所有帐户的 OneDrive 资料夹。
  3. 执行下列命令将所有的 Time Machine 本地快照清理掉(如果本地快照当中出现了相同错误的话)、或者也可以先做完一次 Time Machine 外部备份之后再清理本地快照(然后将 Time Machine 外部备份当中的 OneDrive 资料夹清理掉)。
tmutil listlocalsnapshotdates / |grep 20|while read f; do tmutil deletelocalsnapshots $f; done

好在我人也在日本了,是时候开始继续使用 Dropbox 了。如果你对 OneDrive 有严重依赖的话,请用 CloudMounter(在 Mac App Store 可以免费获取)

(希望微软和 Apple 能够早日厘清到底是谁的责任。)

$ EOF.

编辑于 2019-03-23

文章被以下专栏收录

    敝专栏所涉猎话题包括但不限于美商 Apple 的 3C 电子、作业系统产品及相关的程式研发,也可能与其生活使用体验有关(包括字型),还可能会有其他的跑题。 如果您不习惯阅读简体中文的话,请自备「新同文堂」、以尊重自己的简繁体中文阅读习惯。该提议同样适用于仅习惯阅读简体中文的人士。关于「新同文堂」可参见:http://zhuanlan.zhihu.com/ibuick/20018071 「请看清每一篇文章的作者是谁。不同作者会对自己的文章有不同的智财权主张,但我们始终谢绝无断转载。」