5

Я использую Windows 7 и NTFS. Я заметил, что MFT представляет огромную угрозу безопасности, потому что он может хранить конфиденциальные файлы документов без ведома пользователя в течение длительного времени, прежде чем они будут перезаписаны.

Все тесты, которые я запускаю, говорят мне, что файлы размером менее 640 байт находятся в MFT и не могут быть безопасно удалены. Тем не менее, любой файл размером 640 байт или более можно сразу же безопасно удалить - это верно для моего жесткого диска емкостью 500 ГБ и флэш-накопителя емкостью 128 ГБ (оба NTFS).

Я проверил это, создав кучу текстовых файлов и записав в них слова для создания файлов разных размеров. Удаление их, очистка корзины и запуск Recuva, а затем безопасное удаление выделенного. Он не может безопасно удалить любой файл размером менее 640 байт (файл является резидентным в появившемся сообщении MFT).

Это то же самое для твердотельных накопителей с включенной Trim? Почему 640 байт? Думал, это было максимум 512 байт для записей MFT для стертых файлов?

Любой вклад высоко ценится.

2 ответа2

3

Любые файлы могут быть удалены безопасно, если вы используете правильный инструмент. Например , SDelete Sysinternals способен справиться с этим

На дисках NTFS работа SDelete не обязательно завершается после того, как он выделяет и перезаписывает два файла. SDelete также должен заполнить любые существующие свободные части NTFS MFT (главная таблица файлов) файлами, которые помещаются в запись MFT. Размер записи MFT обычно составляет 1 КБ, и для каждого файла или каталога на диске требуется как минимум одна запись MFT. Небольшие файлы хранятся полностью в своей записи MFT, в то время как файлы, которые не помещаются в записи, размещаются кластерами вне MFT. Все, что SDelete должен сделать, чтобы позаботиться о свободном пространстве MFT, - это выделить самый большой файл, который он может - когда файл занимает все доступное пространство в MFT-записи. NTFS будет препятствовать увеличению размера файла, поскольку на нем не осталось свободных кластеров. диск (они хранятся в двух ранее выделенных файлах SDelete). SDelete затем повторяет процесс. Когда SDelete больше не может даже создавать новый файл, он знает, что все ранее свободные записи в MFT были полностью заполнены надежно перезаписанными файлами.

Конечно, вы выбрали неправильный инструмент, потому что если вы прочитали документацию, вы увидите, что

Recuva не может:

  • ...
  • Надежно удалите некоторые очень маленькие файлы, которые хранятся в главной таблице файлов (MFT), и файлы нулевой длины.

Представляя Recuva - Что это может и не может сделать


Почему 640 байт? Думал, это было максимум 512 байт для записей MFT для стертых файлов?

Размер файлов, которые могут храниться в MFT (называемые резидентными файлами), варьируется в зависимости от каждого файла, каждой системы и того, какая информация хранится в MFT. Чем больше данных используется для метаданных в MFT, тем меньше остается для файла, таким образом, нет определенного ограничения, но в соответствии с Microsoft обычно

Файлы размером менее 900 байтов хранятся в записи каталога на MFT

https://en.wikipedia.org/wiki/NTFS#File_compression

На рисунке Запись MFT с резидентной записью показано содержимое записи MFT для небольшого файла или папки. Небольшие файлы и папки (обычно 900 байтов или меньше) целиком содержатся в записи MFT файла.

https://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx

Я создал пример 1000-байтового файла с очень минимальными метаданными, который полностью хранится в MFT. Но как только я добавил в файл больше метаданных (жесткие ссылки, длинные имена, потоки, разрешения ...), максимальное пространство, которое может вместить резидентный файл, быстро уменьшается

0

Запись MFT имеет длину 1024 байта (см. Раздел MFT по адресу http://www.cse.scu.edu/~tschwarz/coen252_07Fall/Lectures/NTFS.html) и хранит не только имя файла - она также может включать файл размер, разрешение на чтение / запись, дата создания / изменения и другая мета-информация. Этим элементам назначены размеры, и поэтому в более ранних версиях Windows вы могли столкнуться с ошибкой, если имя файла было слишком длинным. По этой же причине вы не можете хранить файлы размером более 640 байт полностью внутри таблицы - оставшиеся 384 байта (1024-640 = 384) были предназначены для выделенных выделений.

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

Кроме того, размер строки MFT МОЖЕТ варьироваться в зависимости от размера диска (или раздела) и его предполагаемого назначения. Центры обработки данных и серверы, скорее всего, будут использовать нестандартный размер, поскольку распределение MFT может составлять более 10% от жесткого диска, поэтому дополнительное пространство становится полезным. Тем не менее, 1024 байта является стандартом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .