Могу ли я изменить образ диска, пока он открыт, но не "сохранять изменения"?

У меня есть скрипт, где я создаю образ диска SD-карты, используя hdiutil а затем смонтировать этот образ диска. Затем я пишу расширенные атрибуты в файлы, используя xattr и важно их в программу. Есть ли способ, которым я могу поменять эти xattr пишет, чтобы они не сохранялись при размонтировании изображения? В идеале я бы оставил нетронутую копию SD-карты в архиве. Есть ли способ смонтировать образ диска, внести изменения в файлы внутри, затем размонтировать его, и эти изменения не "сохранены"? Я пытаюсь избежать копирования SD-карты дважды по временным причинам.

1 ответ

Решение

Вы можете смонтировать изображение с помощью "теневого" файла; изменения громкости будут сохранены в файле теней, оставив исходный файл изображения без изменений. Чтобы восстановить исходное состояние, просто извлеките изображение и удалите файл теней.

На самом деле, вы можете быть еще хитрее, если хотите, "удалив" файл тени, пока изображение еще смонтировано. Запись в каталоге файла будет немедленно удалена, но она останется на диске (и может быть прочитана и записана) до тех пор, пока последняя программа не закроет ее, чего не произойдет, пока изображение не будет извлечено. Как это:

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

Таким образом, изменения немедленно исчезают, когда изображение извлекается; перемонтирование дает вам чистое изображение. Одно предупреждение, однако: вы должны полностью извлечь образ диска, а не просто размонтировать том. Отключение тома оставляет изображение прикрепленным к записи /dev, изменения в теневом файле и т. Д.

Увидеть hdiutil Страница man для деталей.

Другие вопросы по тегам