我可以在磁盘映像打开时修改磁盘映像,但不能修改"save changes"吗?



我有一个脚本,其中我使用hdiutil创建SD卡的磁盘映像,然后装载该磁盘映像。然后,我使用xattr将扩展属性写入文件中,并将它们重要化到程序中。有没有什么方法可以反转那些xattr写入,这样当我卸载映像时它们就不会保存了?理想情况下,我会保留一份未动过的SD卡副本存档。有没有一种方法可以装载磁盘映像,对其中的文件进行更改,然后卸载它,而这些更改不会"保存"?由于时间原因,我尽量避免复制SD卡两次。

您可以使用"shadow"文件挂载图像;对卷的更改将存储在阴影文件中,保持原始图像文件不变。要重置回原始状态,只需弹出图像并删除阴影文件。

事实上,如果您愿意的话,您可能会更棘手,在图像仍然挂载的情况下"删除"阴影文件。文件的目录条目将立即被删除,但它仍保留在磁盘上(可以读取和写入(,直到最后一个程序关闭它,直到图像弹出为止。像这样:

hdiutil mount /path/to/image.dmg -shadow
rm /path/to/image.dmg.shadow

这样,当图像被弹出时,变化立即消失;重新安装它会给你一个干净的形象。不过,有一个警告:必须完全弹出磁盘映像,而不仅仅是卸载卷。卸载卷会使映像附加到/dev/条目,阴影文件更改仍然有效,等等。

有关详细信息,请参阅hdiutil手册页。

最新更新