ESC
科技 1 分钟阅读

hdiutil 在 macOS 27 Golden Gate 中已弃用

macOS 27 Golden Gate将弃用hdiutil,推荐使用diskutil。作者实测发现,diskutil创建磁盘镜像更快(约40-45秒 vs 110-115秒),生成的dmg更小(2.8GB vs 2.89GB),但不会触发认证提示,需手动处理root用户文件,且缺少部分hdiutil选项。对依赖hdiutil的脚本和自动化流程影响较大。

来源:Hacker News

另外,hdiutil create -srcfolder 特有的一些选项也缺失了:

-[no]crossdev -[no]scrub -[no]anyowners -skipunreadable -[no]atomic -copyuid

我尝试通过备份用户主文件夹来比较 Golden Gate 上的 hdiutil 和 diskutil,这是我每天在装有 macOS Sequoia 的 MacBook Pro 上都会做的事情。首先:

这平均花费了大约 110 到 115 秒。

需要特别指出的是,hdiutil 会触发身份验证提示,因为其中一个文件很烦人地由 root 用户所有。从终端输出:

在输入管理员凭据进行身份验证后,磁盘映像创建继续进行并成功完成。

而 diskutil 则直接失败,尽管使用了 verbose 选项,也不会告诉你失败原因。

幸运的是,我猜到了原因——那个由 root 拥有的文件。与 hdiutil 不同,diskutil 不会触发身份验证提示。因此,我不得不删除那个 root 拥有的文件才能让 diskutil 正常工作。

同样,输出信息也不够详细。不过,在磁盘映像创建过程中,进度百分比会原地更新,所以也算是对 hdiutil -puppetstrings 选项的某种替代。

好消息是,diskutil 明显更快,平均大约 40 到 45 秒完成,比 hdiutil 快了一分多钟。此外,diskutil 生成的 dmg 文件也更小,为 2.8 GB,而 hdiutil 生成的是 2.89 GB。