Могу ли я изменить образ диска, пока он открыт, но не "сохранять изменения"?
У меня есть скрипт, где я создаю образ диска SD-карты, используя hdiutil
а затем смонтировать этот образ диска. Затем я пишу расширенные атрибуты в файлы, используя xattr
и важно их в программу. Есть ли способ, которым я могу поменять эти xattr
пишет, чтобы они не сохранялись при размонтировании изображения? В идеале я бы оставил нетронутую копию SD-карты в архиве. Есть ли способ смонтировать образ диска, внести изменения в файлы внутри, затем размонтировать его, и эти изменения не "сохранены"? Я пытаюсь избежать копирования SD-карты дважды по временным причинам.
1 ответ
Вы можете смонтировать изображение с помощью "теневого" файла; изменения громкости будут сохранены в файле теней, оставив исходный файл изображения без изменений. Чтобы восстановить исходное состояние, просто извлеките изображение и удалите файл теней.
На самом деле, вы можете быть еще хитрее, если хотите, "удалив" файл тени, пока изображение еще смонтировано. Запись в каталоге файла будет немедленно удалена, но она останется на диске (и может быть прочитана и записана) до тех пор, пока последняя программа не закроет ее, чего не произойдет, пока изображение не будет извлечено. Как это:
hdiutil mount /path/to/image.dmg -shadow
rm /path/to/image.dmg.shadow
Таким образом, изменения немедленно исчезают, когда изображение извлекается; перемонтирование дает вам чистое изображение. Одно предупреждение, однако: вы должны полностью извлечь образ диска, а не просто размонтировать том. Отключение тома оставляет изображение прикрепленным к записи /dev, изменения в теневом файле и т. Д.
Увидеть hdiutil
Страница man для деталей.