使用hdiutil转换ISO遇Resource temporarily unavailable错误求助
制作High Sierra安装U盘时hdiutil convert命令失败的解决方法
问题信息
- 设备:2020款Intel Mac,系统版本Monterey 12.6.2
- 操作目标:制作High Sierra安装U盘,已获取
snolepinst.iso文件 - 故障现象:执行
hdiutil convert命令多次失败,初期提示“No such directory”,后续出现“Resource temporarily unavailable”错误 - 环境细节:U盘格式为HFS+,本地磁盘为APFS格式
错误输出
基础命令执行结果
hdiutil detach disk9s2 "disk9" 已弹出。 hdiutil convert -format UDRW -o disk9s2/snolepinst.img /Users/jaygamel/Desktop/snolepinst.iso hdiutil: 转换失败 - 资源暂时不可用
调试模式输出
hdiutil convert -format UDRW -o disk9s2/snolepinst.img /Users/jaygamel/Desktop/snolepinst.iso -debug ─╯ DIIsInitialized: 返回 YES DIIsInitialized: 返回 YES DIBackingStoreNewWithCFURL: 入口参数为 file:///Users/jaygamel/Desktop/snolepinst.iso 可写: false DIBackingStoreInstantiatorProbe: 入口参数为 file:///Users/jaygamel/Desktop/snolepinst.iso 可写: false DIBackingStoreInstantiatorProbe: 探测接口 0 CBSDBackingStore CBSDBackingStore::newProbe 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 100 DIBackingStoreInstantiatorProbe: 接口 0,评分 100,CBSDBackingStore DIBackingStoreInstantiatorProbe: 探测接口 1 CBundleBackingStore CBundleBackingStore::newProbe 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 -1000 DIBackingStoreInstantiatorProbe: 接口 1,评分 -1000,CBundleBackingStore DIBackingStoreInstantiatorProbe: 探测接口 2 CRAMBackingStore CRAMBackingStore::probe: 协议为 "file": 不是 ram: 或 ramdisk: 协议。 CRAMBackingStore::probe: 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 -1000 DIBackingStoreInstantiatorProbe: 接口 2,评分 -1000,CRAMBackingStore DIBackingStoreInstantiatorProbe: 探测接口 3 CDevBackingStore CDevBackingStore::newProbe: 不是 /dev/disk 或 /dev/rdisk 路径(/Users/jaygamel/Desktop/snolepinst.iso)。 CDevBackingStore::newProbe 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 -1000 DIBackingStoreInstantiatorProbe: 接口 3,评分 -1000,CDevBackingStore DIBackingStoreInstantiatorProbe: 探测接口 4 CCURLBackingStore CCURLBackingStore::probe: 协议是: file CCURLBackingStore::probe: 未识别的URL协议。 CCURLBackingStore::probe: 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 -1000 DIBackingStoreInstantiatorProbe: 接口 4,评分 -1000,CCURLBackingStore DIBackingStoreInstantiatorProbe: 探测接口 5 CVectoredBackingStore CVectoredBackingStore::newProbe 不是 "vectored" 协议。 CVectoredBackingStore::newProbe 对 file:///Users/jaygamel/Desktop/snolepinst.iso 的评分是 -1000 DIBackingStoreInstantiatorProbe: 接口 5,评分 -1000,CVectoredBackingStore DIBackingStoreInstantiatorProbe: 选择 CBSDBackingStore DIBackingStoreNewWithCFURL: CBSDBackingStore CBSDBackingStore::setPermission: 打开 /Users/jaygamel/Desktop/snolepinst.iso CBSDBackingStore::OpenLockFriendly: 映射标志 0x00000000 -> 0x00000014(锁定为强制要求) CBSDBackingStore:OpenLockFriendly: 无法通过锁定打开,错误码35 DIBackingStoreNewWithCFURL: 实例化器返回35 DIBackingStoreNewWithCFURL: 返回35 DIResolveURLToBackingStore: 无法解析为任何存储后端类。错误码35。 DIResolveURLToDiskImage: 解析存储后端/文件编码失败。错误码35。 convert: 无法识别 "/Users/jaygamel/Desktop/snolepinst.iso": 资源暂时不可用。hdiutil: 转换失败 - 资源暂时不可用
解决步骤
从调试日志分析,核心问题是ISO文件被锁定无法访问(错误码35对应资源锁定),且你直接输出到U盘设备节点路径的操作有误,按以下步骤操作:
确认U盘的正确挂载路径
- 插入U盘,打开「磁盘工具」,找到你的U盘,查看其挂载路径(格式为
/Volumes/你的U盘名称),不要使用disk9s2这类设备节点路径。 - 也可以通过命令查询:
diskutil list,找到U盘对应的/Volumes/xxx路径。
- 插入U盘,打开「磁盘工具」,找到你的U盘,查看其挂载路径(格式为
解除ISO文件的锁定或占用
- 关闭所有可能访问
snolepinst.iso的程序(比如预览、虚拟机、压缩软件等)。 - 复制一份
snolepinst.iso到本地磁盘(比如桌面),使用复制后的文件进行后续操作,避免原文件的权限或锁定问题。
- 关闭所有可能访问
先在本地转换ISO为可写镜像
不要直接输出到U盘,先在本地生成镜像文件:hdiutil convert -format UDRW -o /Users/jaygamel/Desktop/snolepinst.img /Users/jaygamel/Desktop/snolepinst.iso执行成功后,会在桌面生成
snolepinst.img.dmg文件(系统自动添加.dmg后缀)。卸载U盘设备
使用diskutil命令卸载整个U盘,替换disk9为你的U盘编号(从diskutil list获取):diskutil unmountDisk /dev/disk9将镜像写入U盘
使用dd命令写入镜像,注意使用rdisk前缀以加速写入:sudo dd if=/Users/jaygamel/Desktop/snolepinst.img.dmg of=/dev/rdisk9 bs=1mif:输入文件路径,即刚才生成的dmg文件of:输出设备路径,替换rdisk9为你的U盘编号- 输入管理员密码后等待写入完成,期间不要断开U盘或进行其他磁盘操作。
验证结果
写入完成后U盘会自动重新挂载,可查看U盘中的文件结构是否符合High Sierra安装介质的要求。
内容的提问来源于stack exchange,提问作者jaygamel
相关产品推荐
相关产品推荐

