Безопасно ли «Безопасная пустая корзина» удаляет скрытые файлы версий для документов в Корзине в OS X Lion?

12

Новая функция «Версии» в Lion создает скрытые файлы, в которых хранятся старые версии документа, над которым вы работаете, на тот случай, если вы захотите вернуться к какой-то более старой версии документа. Если я перетаскиваю документ в корзину, затем выбираю «Безопасная пустая корзина» в меню «Поиск», надежно ли удаляются скрытые файлы версий вместе с документом?

Фил М
источник
а как насчет копий в новом локальном кэше машины времени?
Тило
@thilo - вряд ли вообще - почему бы не задать это как собственный вопрос?
bmike

Ответы:

7

Я думаю, нет, но это не окончательный ответ.

Сначала я создал очень большой (~ 160 МБ) файл .txt и внес изменения в файл в TextEdit. Как и ожидалось, этот файл и его версии были обнаружены в /.DocumentRevisions-V100/PerUID. Файлы оказались размером ~ 160 МБ ls, но, согласно данным, du -hони использовали 0B на диске. Количество жестких ссылок для каждого файла было 1. Папка под названием .cs(хранилище чанков) /.DocumentRevisions-V100снизилась примерно на 110 МБ.

Каждый раз, когда я менял файл, происходило следующее /.DocumentRevisions-V100:

  1. Файл ~ 160 МБ был создан в /.DocumentRevisions-V100/staging/. Количество жестких ссылок для этого файла равно 1.
  2. Этот файл появился для перемещения /.DocumentRevisions-V100/PerUID/<UID>/<#>/com.apple.documentVersions. Количество жестких ссылок осталось 1.
  3. Этот файл размером ~ 160 МБ стал 0B, а размер /.DocumentRevisions-V100/.csвырос примерно на 2 МБ.

Свободное место на диске ( df) соответствовало duсказанному мной. Свободное пространство значительно уменьшится, а затем вернется почти к тому, что было до сохранения новой версии.

Затем я попытался уничтожить файл с помощью Безопасной пустой корзины. OS X, кажется, использует программу, вызываемую Locumдля безопасного удаления файла. Прикрепление fs_usageк Locumпоказывает очень много операций чтения и записи в исходный файл .txt. Пока Locumон делает свое дело, все версии /.DocumentRevisions-V100/PerUIDмогут быть доступны без изменений. После Locumзавершения записи данных, он освобождает исходный файл .txt, и версии /.DocumentRevisions-V100/PerUIDвнезапно исчезают. Locumзатем переходит к чему-либо еще в корзине, не касаясь его /.DocumentRevisions-V100.

Все, что находится внутри /.DocumentRevisions-V100, не удаляется надежно.

РЕДАКТИРОВАТЬ: я должен добавить, что все, что находится внутри, /.DocumentRevisions-V100как-то запутано или сжато (папка была всего ~ 120 МБ). Я еще не читал версии или разделы файловой системы обзора Сиракузы ... возможно, там есть подсказки.

FrostedMint
источник
7

Я только что проверил это, и кажется, что старые файлы действительно удаляются. Не имеет значения, выбрал ли я Безопасный пустой мусор или просто очистил его, они также были удалены.

Еще немного подробнее:

Чтобы проверить это, я включил пользователя root, чтобы разрешить мне /.DocumentRevisions-V100просматривать и файлы внутри. Точную структуру этой папки и ее содержание лучше объяснить в обзоре Льва Джона Сиракузы (Internals, Document Revisions).

Я создал пару файлов, затем внес некоторые изменения, сохранив новые версии. Папка с ревизиями заполнялась новыми файлами при сохранении новых версий. В этой папке верхнего уровня есть папка с именем PerUID, в которой находятся подпапки для каждой учетной записи пользователя. Каждая папка учетной записи пользователя содержит ряд пронумерованных папок, по одной папке для каждого файла, в котором сохранены ревизии. Таким образом, фактические ревизии сохраняются в виде файлов на несколько уровней ниже в этой иерархии с хэшированными именами файлов. Очистка корзины (в любом случае) приведет к удалению этих файлов, но прежняя структура папок останется на месте.

Перед удалением: в /.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions этой папке все еще находятся предыдущие версии.

После удаления: /.DocumentRevisions-V100/PerUID/0/5/com.apple.revisions эта папка все еще существует, но она пуста.

Я не проверял другие папки внутри /.DocumentRevisions-V100/, поэтому я не проверял базы данных, которые в них содержатся. Сиракузы углубляются в детали, но, похоже, они содержат базы данных для отслеживания изменений и сопоставления файлов пользователя с ревизиями, сохраненными системой. Я совершенно уверен, что там не сохранено содержимое документа, хотя я не уверен насчет имен файлов, и если они присутствуют, хэшированы они или нет.

просвечивающий
источник
2
Это хороший прогресс, но я думаю, что это только доказывает, что файлы были удалены, не обязательно удалены безопасно. Чтобы доказать безопасное удаление, я бы подумал, что вам нужно будет обратиться к документации Apple для разработчиков или запустить программу для восстановления файлов и посмотреть, что можно восстановить.
Фил М,
ах, прости, я неправильно тебя понял. должен быть довольно простой эксперимент для кого-то, чтобы воспроизвести и запустить приложение восстановления. Я не на АЦП, так что я там не очень полезен.
Gauzy
iostat и другой «неподвижный» mac должны легко увидеть пропускную способность записи.
bmike