在 OS X 上使用 hdiutil 分离卷时出错

Posted

技术标签:

【中文标题】在 OS X 上使用 hdiutil 分离卷时出错【英文标题】:Error when detaching volume using hdiutil on OS X 【发布时间】:2010-10-28 18:26:58 【问题描述】:

我有一个在 Mac OS 10.5.8 上运行的程序。该程序运行一个连续的循环,它安装一个图像,安装一个浏览器插件并再次卸载图像。如果我让这个程序继续运行,我最终会遇到以下错误“fork:资源暂时不可用”。在活动监视器中,我可以看到数百个名为 diskimages-helper 的进程正在运行。有谁知道为什么会发生这种情况以及如何避免它?以下是我在程序的一个周期中使用的命令。

# First I remove the plugin
rm -rf "/Library/Internet Plug-Ins/my.plugin"

# If the mount exists I unmount it
hdiutil unmount [mount] -force

# If that doesnt work I detach the device
hdiutil detach [device] -force

# Then I mount the image
hdiutil mount [image]

# I install the plugin
installer -package [package] -target /

# Unmount
hdiutil unmount [mount] -force

# And if necessary detach
hdiutil detach [device] -force

【问题讨论】:

您重复安装同一个浏览器插件? 该程序做了一些其他的事情使它有用:) 它下载插件的不同版本并运行一些测试 【参考方案1】:

您需要始终分离磁盘映像 -- 卸载它会卸载文件系统,但会将磁盘映像附加到 /dev/disk* 条目,并运行一个 diskimages-helper 进程来处理它.请注意,hdiutil detach 会为您卸载卷(前提是磁盘仲裁正在运行),因此您可以跳过卸载步骤。

【讨论】:

感谢您的回答,我会试一试。 (很难说它是否有效,因为问题有时需要几天才能显现出来,它不像每个周期都会添加一个磁盘映像进程) 嘿,戈登,我终于有时间尝试你的建议了,它似乎奏效了 :) 谢谢 很遗憾mountattach 的同义词,但unmount 不是detach 的同义词。这让我大吃一惊,用disk* 条目慢慢填充/dev,最终导致no mountable file systems 错误。重新启动以清除/dev/disk* 条目并使用attach/detach 代替mount/unmount 看起来已经解决了问题。

以上是关于在 OS X 上使用 hdiutil 分离卷时出错的主要内容,如果未能解决你的问题,请参考以下文章

尝试创建和挂载新的 HFS 卷时出错(为了测试过滤方案驱动程序)

Mac OS X 制作 ubuntu 安装启动盘

使用 PlistBuddy 处理 hdiutil 输出

尝试在 os x 上构建 opencv 时出错

使用 PhoneGap/Cordova 为 Android 构建时,在 Mac OS X 10.9 Mavericks 上执行命令“ant”时出错

在 mac os x 上安装 MEAN 时出错