我有一个脚本,其中我使用hdiutil
创建SD卡的磁盘映像,然后挂载该磁盘映像。然后,我使用xattr
将扩展属性写入内部文件,并将其作为重要程序。我有什么办法可以撤消那些xattr
的写操作,以便在我卸载映像时不保存它们?理想情况下,我会保留未修改的SD卡副本以进行存档。有没有办法挂载磁盘映像,更改其中的文件,然后卸载它,而这些更改不是“已保存”的?由于时间原因,我试图避免两次复制SD卡。
答案 0 :(得分:1)
您可以使用“阴影”文件挂载映像;卷的更改将存储在阴影文件中,而原始图像文件保持不变。要恢复到原始状态,只需弹出图像并删除阴影文件即可。
实际上,如果需要,甚至可以通过在图像仍挂载时“删除”阴影文件来增加技巧。该文件的目录条目将被立即删除,但是它将保留在磁盘上(可以读取和写入),直到最后一个程序将其关闭为止,直到弹出该映像时才会发生。像这样:
hdiutil mount /path/to/image.dmg -shadow
rm /path/to/image.dmg.shadow
这样,当图像弹出时,更改立即消失;重新安装它可以获得清晰的图像。不过,有一个警告:您必须完全弹出磁盘映像,而不仅仅是卸载卷。卸载卷会使映像附加到/ dev条目,阴影文件更改仍然有效等。
有关详细信息,请参见the hdiutil
man page。