【问题标题】:Can I modify a disk image while it is open, but not "save changes"? [closed]我可以在磁盘映像打开时修改它,但不能“保存更改”吗? [关闭]
【发布时间】:2018-11-26 22:26:54
【问题描述】:

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

【问题讨论】:

    标签: macos xattr hdiutil


    【解决方案1】:

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

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

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

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

    详情请见the hdiutil man page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多