0

我有一个脚本,可以在其中创建 SD 卡的磁盘映像hdiutil,然后安装该磁盘映像。然后,我将扩展属性写入内部文件,xattr并将它们重要到程序中。有什么办法可以逆转这些xattr写入,以便在我卸载图像时它们不会保存?理想情况下,我会保留 SD 卡的原始副本以进行存档。有没有办法挂载磁盘映像,更改里面的文件,然后卸载它并且这些更改没有“保存”?由于时间原因,我试图避免两次复制 SD 卡。

4

1 回答 1

1

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

实际上,如果您愿意,可以通过在图像仍然挂载时“删除”影子文件来更加棘手。该文件的目录条目将立即被删除,但它会保留在磁盘上(可以读写),直到最后一个程序关闭它,这在图像被弹出之前不会发生。像这样:

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

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

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

于 2018-11-27T03:38:46.737 回答