Чем «rm» в файловой системе NTFS отличается от собственной реализации Windows?

16

У меня есть внешний USB-диск с файловой системой NTFS.

Если я удаляю файл из Windows и запускаю одну из нескольких «восстановленных» утилит (скажем, TestDisk), я могу легко восстановить файл (потому что «он все еще там, но помечен как удаленный»).

Если я удаляю файл из Linux, никакая утилита (если я не использую сигнатуру с глубоким поиском) не сможет восстановить файл. Почему? Как unlink реализован в коде файловой системы NTFS Linux? Похоже, что он не просто «помечает его как удаленный», но стирает некоторую структуру на диске, так ли это?


источник
2
@Jay silly_evarlast Рен Вы, вероятно, правы, я попробую с serverfault. Система, которую я использовал для тестирования этого поведения, является Ubuntu, так что это может быть связано с Ubuntu.
Вы можете просмотреть исходный код ntfs-3g и посмотреть, есть ли что-то в вашей проблеме.
Мартин Юдинг
Возможно, спросить разработчиков ntfs-3g тоже возможно (они знают, как работает NTFS и как они это реализуют).
Janc

Ответы:

7

Из любопытства я взглянул на источник ntfs3g.

Кажется, есть ntfs_delete(...)определенная функция dir.c, которая выполняет удаление.

Он определенно удаляет все метаданные удаленного файла / каталога из структур файловой системы.

Поскольку исходный код для собственной версии Microsoft недоступен, я могу лишь попытаться сделать обоснованное предположение, как она выполняет удаление.

Похоже, что Microsoft помечает только запись MFT как неиспользуемую, поскольку утилиты восстановления могут восстановить местоположение и имя удаленного файла.

Яка
источник
3

Я не знаю особенностей Windows и NTFS, но общий способ сделать это в графическом интерфейсе файлового менеджера Unix / Linux и Mac OS X Finder состоит в том, чтобы фактически не удалять файл, а перемещать его в специальную скрытую папку с именем Trash (или аналогичный). Команда undelete возвращает файл из этой папки.

rm просто удаляет файл, не беспокоясь о папках корзины, по запросу пользователя.

mouviciel
источник
Спасибо, я искал объяснение этому поведению!
Jcora