Максимальный размер файла, который может храниться целиком в основной файловой таблице NTFS (MFT)

1612
Jeff

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

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

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

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

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

5
Что касается «почему» ... NTFS файловых записей 1024 КБ. Часть этого пространства необходима для обязательных атрибутов, таких как `$ FILE_NAME`, а у вас остается остаток для резидентных файлов. Andrea Lazzarotto 7 лет назад 0
@AndreaLazzarotto размер перекодирования составляет 1 КБ или 1024 байта, а не 1024 КБ phuclv 5 лет назад 1
@phuclv Святой курит, ты прав. Блин опечатка. : о Andrea Lazzarotto 5 лет назад 0

2 ответа на вопрос

3
phuclv

Любые файлы могут быть удалены безопасно, если вы используете правильный инструмент . Например , 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 . Но как только я добавил в файл больше метаданных (жесткие ссылки, длинные имена, потоки, разрешения ...), максимальное пространство, которое может вместить резидентный файл, быстро уменьшается

Кажется, что в разных форматах файлов может быть больше байтов в MFT, чем в других, чем тогда ... Изменили ли SSD с командой DRAZT или DRAT on trim какую-либо информацию, хранящуюся в MFT для этих маленьких файлов? Jeff 7 лет назад 0
Я не знаю о DRAZT или DRAT, но твердотельные накопители переназначают сектора и / или перемещают данные для выравнивания износа, поэтому все ставки отключены. Я считаю, что безопасная очистка при переназначении будет выполняться прошивкой SSD, поэтому в верхней части ОС вам просто нужно использовать инструмент для очистки, как на HDD phuclv 7 лет назад 0
0
user3685427

Запись 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 байта является стандартом.