MFT (Master File Table)
Персональні інструменти
| Master File Table |
| Table, hashed B-tree |
| bitmap (free space), table (metadata) |
| 4,096 bytes |
| 255 bytes |
| $DATA, $BITMAP, $BAD [1] |
| No |
| No (зазначений на блоку device level) |
| No |
| Microsoft Windows |
MFT(англ.MasterFіleTable) - головна файлова таблиця (база даних), в якій зберігається інформація про вміст тома з файловою системою NTFS, що є таблицею, рядки якої відповідають файлам тома, а стовпці - атрибутам файлів.
Зміст
MFT являє собою файл (розділений на записи (рядки), зазвичай розміром 1 Кб), в якому зберігається інформація про всі файли тома, в тому числі і про MFT. Файлами, яким відведено перші 16 записів, є метафайли, недоступні операційній системі, але важливі для файлової системи NTFS, причому вони дублюються посередині тома. Система не може виконувати переміщення записів MFT-зони для ліквідації їх фрагментації в міру їх розширення, тому відразу після форматування NTFS том ділиться на дві частини: службову область, яка надається під використання користувачем і зарезервовану під MFT (12.5 %). Механізм використання MFT-зони досить гнучкий, і коли файловий простір заповнюється, то MFT-зона просто скорочується, а коли у файловому просторі з'явиться вільне місце, вона може бути знову розширена. MFT-зона зберігається цілою якомога довше, оскільки за її розширенні вона може фрагментуватися, що небажано у зв'язку з можливістю зниження швидкості роботи з томом. Модульність структури MFT забезпечує стійкість NTFS до помилок у порівнянні з FAT, оскільки MFT може перемістити і фрагментувати всі свої області, обійшовши пошкодження диска (крім перших 16 записів).
Метафайли NTFS — це службові файли (області), кожен з яких виконує ту чи іншу функцію файлової системи NTFS. Усі метафайли перебувають у кореневому каталозі NTFS тома, недоступному ОС.
- $MFT - основна таблиця MFT
- $MFTmirr - копія перших шістнадцяти записів MFT (розміщена рівно посередині тома)
- $Boot - завантажувач (тільки на первинному томі)
- . — (з точкою як назва) кореневий каталог
- $LogFile - журнал файлової системи
- $Volume — службова інформація (мітка та ID тома, версія файлової системи тощо)
- $Bitmap - карта вільного місця тому
- $AttrDef – список стандартних атрибутів файлів на томі
- $Quota - записи з правами користувачів на використання дискового простору (квотами)
- $Secure - дескриптори безпеки файлових об'єктів (права доступу)
Зв'язок із NTFS
У ядрі файлової системи NTFS міститься файл, який називається основною таблицею файлів (MFT). У файлі MFT міститься щонайменше один запис для кожного файлу тома NTFS, включаючи сам файл MFT.
Оскільки засоби дефрагментації томів NTFS не можуть переміщати записи MFT, а також через те, що значна фрагментація MFT може негативно впливати на швидкодію системи,NTFS резервує для MFT дискове простір, щоб зі збільшенням розміру MFT піддавався мінімальної фрагментації.
Записи MFT використовуються для опису файлів, яким вони відповідають. Усі відомості про файл, включаючи його розмір, дату та час створення, дозволи та вміст, зберігаються або в записах MFT, або в іншому місцезнаходження, що не відноситься до MFT, але зазначене в його записах.
У міру появи нових файлів у томі NTFS у файл MFT додаються нові записи, і, таким чином, розмір MFT збільшується. При видаленні файлів з тома NTFS відповідні записи файлу MFT позначаються як вільні і можуть використовуватися повторно, однак розмір MFT при цьому не скорочується. Таким чином, дисковий простір, який використовується цими записами, залишається недоступним.
Через важливість MFT і можливість негативних наслідків зайвої фрагментації цього файлу для швидкодії системи в NTFS докладаються зусиль, щоб цей файл залишався безперервним. NTFS резервує певний відсоток простору тома, який може використовуватися виключно файлом MFT, поки інший простір тома не буде повністю вичерпано. Таким чином, простір із цієї зони MFT може виділятися для файлів і папок тільки після того, як решта простору буде використана.
Залежно від середнього розміру файлів та інших критеріїв під час заповнення диска зарезервована для MFT зона або незарезервований дисковий простір можуть вичерпуватися насамперед.
Тома з невеликою кількістю відносно великих файлів спочатку вичерпують незарезервований дисковий простір, тоді як томи з великою кількістю відносно невеликих файлів спочатку вичерпують простір, зарезервований для MFT. В будь-якому випадку,при переповненні однієї із цих областей починається фрагментація MFT. При переповненні незарезервованого дискового простору із зони MFT починає виділятися простір для файлів і папок, що призводить до фрагментації MFT. При переповненні зони MFT простір нових записів MFT починає виділятися з незарезервованого дискового простору, що знову призводить до фрагментації MFT. [2]
Якщо кількість файлів у каталозі невелика, то список файлів може бути резидентним у записі MFT, що є каталогом. І тут він називається невеликим каталогом. Невеликий список файлів містить атрибути файлу. За промовчанням це ім'я файлу, а також номер запису MTF, який містить початковий запис файлу.
По мірі того, як каталог зростає, список файлів може вимагати нерезидентної форми зберігання. Однак початкова частина списку завжди залишається резидентною в кореневому записі каталогу таблиці MFT. Імена файлів резидентної частини списку є вузлами B-дерева. Інші частини списку файлів розміщуються поза MFT. Для їх пошуку використовується спеціальний атрибут "розміщення списку" (Index Allocation - IA), що є набором номерів кластерів, які вказують на інші частини списку. Одні частини списків є листям дерева, інші є проміжними вузлами, тобто містять поряд з іменами файлів атрибут Index Allocation, що вказує на списки файлів нижчих рівнів. [3]