Чим "rm" у файловій системі NTFS відрізняється від власної реалізації Windows?


16

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

Якщо я видаляю файл з Windows і запускаю одну з декількох утиліт "відновлення" (скажімо, TestDisk), я можу легко відновити файл (тому що "він все ще є, але він позначений як видалений").

Якщо я видаляю файл з Linux, жодна утиліта (якщо я не використовую функцію глибокого пошуку на основі підпису) не може відновити файл. Чому? Як реалізовано від’єднання в коді файлової системи NTFS Linux? Схоже, це не просто "позначає його як видалене", але видаляє деяку структуру диска, це так?


2
@Jay silly_evarlast Wren Ви, мабуть, праві, я спробую з сервером за замовчуванням. Система, яку я використовував для тестування такої поведінки, є ubuntu, тому це може бути пов'язано з ubuntu.

Ви можете ознайомитись із вихідним кодом ntfs-3g і побачити, чи є щось у вашій проблемі.
Мартін Удінг

Можливо, запитати розробників ntfs-3g також є можливість (вони знають, як працює NTFS і як вони його реалізують).
JanC

Відповіді:


7

Я з цікавості подивився на джерело ntfs3g.

Здається, ntfs_delete(...)визначена функція dir.c, яка виконує видалення.

Це однозначно видаляє всі метадані видаленого файлу / каталогу зі структур файлової системи.

Оскільки вихідний код для власної версії Microsoft недоступний, я можу лише спробувати навчитись здогадуватися про те, як воно виконує видалення.

Схоже, що Microsoft лише позначає запис MFT як невикористаний, оскільки видалені утиліти можуть відновити місцезнаходження та назву видаленого файлу.


3

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

rm просто видаляє файл, не турбуючись із папками Кошик, як вимагає користувач.


Дякую, я шукав пояснення такої поведінки!
jcora
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.