1.79M
Category: informaticsinformatics

Файлова система NTFS

1.

ТЕМА 4.4 (4 ГОД.)
ФАЙЛОВА СИСТЕМА NTFS
ПЛАН
1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
2 ФАЙЛИ ТА КАТАЛОГИ В NTFS

2.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Файлова система NTFS (від англ. New Technology File System — «файлова
система нової технології») розроблялася Microsoft на початку 1990-х рр. як
основна файлова система для серверних версій операційних систем Windows.
NTFS була представлена в 1993 році в операційній системі Windows NT 3.1.
Нині NTFS розглядається в якості основної файлової системи як для серверних,
так і для клієнтських версій Windows.
У NTFS використовуються 64 розрядні ідентифікатори кластерів, тому
теоретично том NTFS може містити 264 кластерів. Однак поточні реалізації в
Windows підтримують тільки 32 розрядну адресацію кластерів, що при розмірі
кластера максимум 64 КБ (216 байт) дозволяє NTFS тому досягати розміру до 256
ТБ: 232 * 216 байт = 248 байт = 28 * 240 байт = 256 ТБ.
Для томів, більше 4 ГБ, при форматуванні Windows пропонує розмір кластера
за умовчанням 4 КБ.

3.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Перерахуємо деякі можливості NTFS:
• відновлюваність (recoverability) - здатність файлової системи повертатися
до працездатного стану після виникнення збою. Реалізується така можливість, поперше, за рахунок підтримки атомарних транзакцій, по-друге, за рахунок
надмірності зберігання інформації. Атомарна транзакція (atomic transaction) операція з файловою системою, що призводить до її зміни, яка або повністю
успішно виконується, або не виконується взагалі (тобто у разі збою під час
атомарної транзакції усі зміни відкочуються). Надмірність використовується при
зберіганні найважливіших даних файлової системи, критично необхідних для її
коректної роботи;
• безпека (security) - захищеність файлів від несанкціонованого доступу.
Реалізується за допомогою моделі безпеки Windows;

4.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Перерахуємо деякі можливості NTFS:
• шифрування (encryption) - перетворення файлу в зашифрований код, який
неможливо прочитати без ключа. Звичайні механізми безпеки, такі як призначення прав
доступу користувачів до файлів, не забезпечують повного захисту інформації, наприклад,
у разі переміщення диска на інший комп’ютер. Адміністратор операційної системи
завжди може отримати доступ до файлів інших користувачів, навіть на томі NTFS. Тому в
NTFS включена підтримка шифруючої файлової системи EFS (Encrypting File System), яка
дозволяє легко зашифровувати і розшифровувати файли;
• підтримка RAID (Redundant Array of Inexpensive (Independent) Disks - масив
недорогих (незалежних) дисків з надмірністю) - можливість використання для
зберігання інформації декількох дисків; дані з одного диска автоматично копіюються на
інші, забезпечуючи тим самим підвищену надійність;
• дискові квоти для користувачів (Per - User Volume Quotas) - можливість виділення
для кожного користувача певного простору на диску (квоти); NTFS не дозволяє
користувачеві записувати дані на диск понад виділену квоту.

5.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Структура тому NTFS представлена на рисунку 4.4.1.
Рисунок 4.4.1 - Структура NTFS тому

6.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
На початку тому знаходиться завантажувальний запис тому (Volume Boot Record), в
якому міститься код завантаження Windows, інформація про том (зокрема, тип файлової
системи), адреси системних файлів ($Mft і $MftMirr – див. далі). Завантажувальний запис
займає зазвичай 8 КБ (16 перших секторів).
У певній області тому (адреса початку цієї області вказується в завантажувальному
записі) розташована основна системна структура NTFS - головна таблиця файлів (Master
File Table, MFT). У записах цієї таблиці міститься уся інформація про розташування файлів
на томі, а невеликі файли зберігаються прямо в записах MFT.
Важливою особливістю NTFS є те, що уся інформація, як призначена для користувача,
так і системна, зберігається у вигляді файлів. Імена системних файлів розпочинаються зі
знаку «$». Наприклад, завантажувальний запис тому міститься у файлі $Boot, а головна
таблиця файлів - у файлі $Mft. Така організація інформації дозволяє однаково працювати
як з призначеними для користувача, так і з системними даними на томі.

7.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Оскільки MFT є найважливішою системною структурою, до якої при операціях з
томом найчастіше відбуваються звернення, вигідно зберігати файл $Mft у
безперервній області логічного диска, щоб уникнути його фрагментації
(розміщення в різних областях диска), і, отже, підвищити швидкість роботи з ним.
З цією метою при форматуванні тому виділяється безперервна область, що
називається зоною MFT (MFT Zone). У міру збільшення головної таблиці файлів,
файл $Mft розширюється, займаючи зарезервоване місце в зоні.
Решта місця на томі NTFS відводиться під файли - системні і призначені для
користувача.

8.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Розглянемо детальніше структуру MFT (рисунок 4.4.2).
Рисунок 4.4.2 - Головна таблиця файлів MFT

9.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
Головна таблиця файлів MFT складається з безлічі записів про файли (файлових
записів), розташованих на томі. Розмір одного запису - 1 КБ (2 сектори). Найперший
запис в MFT - це запис про сам файл $Mft. У другому записі міститься інформація про
файл $MftMirr - дзеркальну копію MFT. У цьому файлі дублюються перші 4 записи
таблиці MFT, у тому числі запис про $Mft. У разі виникнення збою, якщо MFT виявиться
недоступною, інформація про системні файли зчитуватиметься з $MftMirr (у
завантажувальному записі є адреса $MftMirr).
Перерахуємо наступні декілька записів в таблиці MFT і коротко опишемо
призначення відповідних системних файлів:
$LogFile - файл журналу, в якому записується інформація про усі операції, що
змінюють структуру тому NTFS, наприклад, створення файлів і каталогів. Файл журналу
використовується при відновленні тому NTFS після збоїв;
$Volume - файл інформації про том, в якому містяться ім’я тому (Volume label), версія
NTFS і набір прапорів стану тому, наприклад, прапор (так званий «брудний біт», dirty bit),
установка якого означає, що том був пошкоджений і вимагає відновлення за допомогою
системної утиліти Chkdsk;

10.

1 СТРУКТУРА ЛОГІЧНОГО ТОМУ NTFS
$AttrDef - таблиця визначення атрибутів (Attribute Definition Table), що містить
можливі на цьому томі типи атрибутів файлів;
Root Directory (позначається також зворотним слешем «\») - файл з
інформацією про кореневий каталог тому. У нім зберігаються посилання на файли
і каталоги, що містяться в кореневому каталозі;
$BitMap - файл бітової карти (bitmap), кожен біт в цій карті відповідає кластеру
на томі: якщо біт дорівнює 1, кластер зайнятий, інакше - вільний;
$Boot - файл завантажувального запису тому;
$BadClus - файл поганих кластерів (bad clusters), що містить інформацію про усі
кластери, що мають збійні сектори (bad sectors).
Окрім перерахованих, є і інші системні файли NTFS, а в нових версіях
з’являються нові системні файли.

11.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Як вже зазначалося, основна інформація про файл
міститься у файловому записі (File Record) розміром 1 КБ
таблиці MFT, а невеликі файли цілком зберігаються у
файловому записі.
Файловий запис складається із заголовка (Header) і
набору атрибутів (Attribute). У заголовку міститься службова
інформація про файловий запис, наприклад, його тип і
розмір. Усі дані, що відносяться безпосередньо до файлу,
зберігаються у вигляді атрибутів. Назви атрибутів, так само як
і системних файлів, починаються з «$». Наприклад,
окремими атрибутами є ім’я файлу ($FILE_NAME), інформація
про його властивості ($STANDARD_INFORMATION), дані файлу
($DATA). Типовий файловий запис представлений на рисунку
4.4.3.
Рисунок 4.4.3 - Файловий запис

12.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
На диску файловий запис завжди розташований на
початку сектора, перші байти файлового запису кодують
слово «FILE» (ASCII-коди: 46 49 4C 45). Кінець запису
визначається 4 байтовою послідовністю FF FF FF FF.
Фізично атрибут файлу зберігається у вигляді потоку
байтів (stream) - простої послідовності байтів. Таке
представлення дозволяє однаковим чином працювати з
різнотипними атрибутами, а також додавати нестандартні
призначені для користувача атрибути.
Кожен атрибут складається із заголовка (attribute header),
що визначає тип атрибуту і його властивості, і тіла (attribute
body), що містить основну інформацію атрибуту.
Детальніша структура файлового запису представлена на
рисунку 4.4.4.
Рисунок 4.4.4 - Структура
файлового запису

13.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
По розташуванню відносно MFT атрибути бувають резидентні і нерезидентні.
Резидентні атрибути (resident attributes) повністю поміщаються у файловий запис
MFT, нерезидентні атрибути (nonresident attributes) зберігаються зовні MFT.
Область, в якій розташований нерезидентний атрибут, називається групою (run).
Оскільки нерезидентних атрибутів у файлі може бути декілька, то і груп буває теж
декілька. Множина груп файлу називається списком груп (RunList). Файловий
запис за наявності нерезидентних атрибутів містить посилання на розташування
групи на диску.

14.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Деякі поля заголовка файлового запису, а також резидентних і нерезидентних атрибутів
представлені на рисунку 4.4.5. На тому ж рисунку справа показаний приклад файлового запису з
конкретними значеннями даних полів. Числа зліва від полів запису означають шістнадцяткове
зміщення поля від початку запису.
Рисунок 4.4.5 - Поля заголовка і атрибутів файлового запису

15.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
На початку файлового запису знаходиться ознака його початку - слово «FILE»
(46 49 4C 45). По зміщенню 0x14 розташовано двобайтове поле, в якому
записано зміщення першого атрибуту відносно початку файлового запису. У
прикладі в цьому полі записане 38, тобто перший атрибут розташований по
зміщенню 38.
У наступному полі зберігається тип файлового запису: значення 01 означає
файл, 02 - каталог (directory). У прикладі файловий запис відповідає файлу
(значення 01 по зміщенню 16).
Ще одне поле в заголовку містить розмір усього запису. У прикладі на рисунку
4.4.5 в цьому полі записане 1A0, тобто розмір запису складає 416 байт.
Кожен атрибут має поля, що вказують тип, довжину і резидентність атрибуту.
Усі типи атрибутів мають свої чисельні значення, наприклад, атрибуту $FILE_NAME
відповідає значення 0x30, атрибуту $STANDARD_INFORMATION - 0x10, атрибуту
$DATA - 0x80.

16.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Якщо атрибут резидентний, в полі резидентності записується 0x00, інакше 0x01. У разі нерезидентного атрибуту передбачені поля для зберігання номерів
кластерів, в яких розташовується група або декілька груп, виділених для
розміщення файлу.
У прикладі на рисунку 4.4.5 показано два атрибути. Перший атрибут має тип
$STANDARD_INFORMATION (значення 10), довжина атрибуту 96 байт, атрибут є
резидентним (00). У другого атрибуту тип $DATA (80), довжина - 72 байти, атрибут
є нерезидентним (01).
Для позначення кластерів використовуються два типи номерів: LCN і VCN. За
допомогою першого типу, LCN (Logical Cluster Number - логічний номер
кластера), нумеруються усі кластери на диску, від першого до останнього. LCN
застосовуються, щоб знайти початковий кластер групи. Номери VCN (Virtual
Cluster Number - віртуальний номер кластера) означають порядковий номер
кластера усередині групи.

17.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Схема нумерації кластерів LCN VCN проілюстрована на рисунку 4.4.6.
Рисунок 4.4.6 - Схема нумерації кластерів з використанням LCN VCN

18.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Базова одиниця розподілу дискового простору для файлової системи NTFS —
безперервна область кластерів, що називається відрізком. В якості адреси
відрізку NTFS використовує логічний номер його першого кластера, а також
кількість кластерів у відрізку, тобто пара (LCN, k). Таким чином, частина файлу, що
поміщена у відрізок і розпочинається з віртуального кластера VCN,
характеризується адресою, що складається з трьох чисел: (VCN, LCN, k).
Файл в томі з NTFS ідентифікується так званим файловим посиланням (File
Reference), яке представляється як 64-розрядне число. Файлове посилання
складається з номера файлу, який відповідає позиції його файлового запису в MFT,
і номера послідовності.
Кожен файл і каталог на томі NTFS складається з набору атрибутів. Важливо
відмітити, що ім’я файлу і його дані також розглядаються як атрибути файлу, тобто
в трактуванні NTFS окрім атрибутів у файлу немає ніяких інших компонентів.

19.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Кожен атрибут файлу NTFS складається з полів: тип атрибуту, довжина
атрибуту, значення атрибуту і, можливо, ім’я атрибуту. Тип атрибуту, довжина і
ім’я утворюють заголовок атрибуту.
Є системний набір атрибутів, визначених структурою тому NTFS. Системні
атрибути мають фіксовані імена і коди їх типу, а також певний формат. Можуть
застосовуватися також атрибути, що призначаються користувачами. Їх імена, типи
і формати задаються виключно користувачем. Атрибути файлів впорядковані по
убуванню коду атрибуту, причому атрибут одного і того ж типу може
повторюватися кілька разів. Існують два способи зберігання атрибутів файлу —
резидентне зберігання в записах таблиці MFT і нерезидентне зберігання поза нею,
в зовнішніх відрізках. Таким чином, резидентна частина файлу складається з
резидентних атрибутів, а нерезидентна — з нерезидентних атрибутів. Сортування
може здійснюватися тільки по резидентних атрибутах.

20.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Системний набір включає наступні атрибути:
Attribute List (список атрибутів) — список атрибутів, з яких складається файл; містить
посилання на номер запису MFT, де розташований кожен атрибут; цей рідко
використовуваний атрибут потрібний тільки у тому випадку, якщо атрибути файлу не
уміщаються в основному записі і займають додаткові записи MFT.
File Name (ім’я файлу) — цей атрибут містить довге ім’я файлу у форматі Unicode, а
також номер входу в таблиці MFT для батьківського каталогу; якщо цей файл міститься в
декількох каталогах, то у нього буде декілька атрибутів типу File Name; цей атрибут
завжди має бути резидентним.
MS DOS Name (ім’я MS DOS) — цей атрибут містить ім’я файлу у форматі 8.3.
Version (версія) — атрибут містить номер останньої версії файлу.
Security Descriptor (дескриптор безпеки) — цей атрибут містить інформацію про захист
файлу: список прав доступу ACL і поле аудиту, яке визначає, якого роду операції над цим
файлом треба реєструвати.
Volume Version (версія тому) — версія тому, використовується тільки в системних
файлах тому.

21.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Системний набір включає наступні атрибути:
Volume Name (ім’я тому) — ім’я тому.
Data (дані) — містить звичайні дані файлу.
MFT bitmap (бітова карта MFT) — цей атрибут містить карту використання
блоків на томі.
Index Root (корінь індексу) — корінь В-дерева, використовуваного для пошуку
файлів в каталозі.
Index Allocation (розміщення індексу) — нерезидентні частини індексного
списку В-дерева.
Standard Information (стандартна інформація) — цей атрибут зберігає усю іншу
стандартну інформацію про файл, яку важко зв’язати з яким-небудь з інших
атрибутів файлу, наприклад час створення файлу, час оновлення та ін.

22.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Файли NTFS залежно від способу розміщення діляться на невеликі, великі, дуже великі і
надвеликі.
Невеликі файли (small). Якщо файл має невеликий розмір, то він може цілком
розташовуватися усередині одного запису MFT, що має, наприклад, розмір 2 Кбайт. Невеликі
файли NTFS складаються, принаймні, з наступних атрибутів (рисунок 4.4.7):
Рисунок 4.4.7 - Невеликий файл NTFS
стандартна інформація (SI — standard information);
ім’я файлу (FN — file name);
дані (Data);
дескриптор безпеки (SD — security descriptor).
Через те, що файл може мати змінну кількість атрибутів, а також із-за змінного розміру
атрибутів не можна напевно стверджувати, що файл уміщатиметься усередині запису. Проте
зазвичай файли розміром менше 1500 байт поміщаються усередині запису MFT (розміром 2
Кбайт).

23.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Великі файли (large). Якщо дані файлу не вміщаються в один запис MFT, то цей
факт відбивається в заголовку атрибуту Data, який містить ознаку того, що цей
атрибут є нерезидентним, тобто знаходиться у відрізках поза таблицею MFT. В
цьому випадку атрибут Data містить адресну інформацію (LCN, VCN, k) кожного
відрізку даних (рисунок 4.4.8).
Рисунок 4.4.8 - Великий файл NTFS

24.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Дуже великі файли (huge). Якщо файл настільки великий, що його атрибут даних, що
зберігає адреси нерезидентних відрізків даних, не поміщається в одному записі, то цей
атрибут поміщається в інший запис MFT, а посилання на такий атрибут поміщається в
основний запис файлу (рисунок 4.4.9). Це посилання міститься в атрибуті Attribute List. Сам
атрибут даних як і раніше містить адреси нерезидентних відрізків даних.
Рисунок 4.4.9 - Дуже великий файл NTFS

25.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Надвеликі файли (extremely huge).
Для надвеликих файлів в атрибуті
Attribute List можна вказати декілька
атрибутів, розташованих в додаткових
записах MFT (рисунок 4.4.10). Крім
того, можна використовувати
подвійну непряму адресацію, коли
нерезидентний атрибут
посилатиметься на інші нерезидентні
атрибути, тому в NTFS не може бути
атрибутів занадто великої для
системи довжини.
Рисунок 4.4.10 - Надвеликий файл NTFS

26.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Каталоги NTFS. Кожен каталог NTFS є одним входом в таблицю MFT, який
містить атрибут Index Root. Індекс містить список файлів, що входять в каталог.
Індекси дозволяють сортувати файли для прискорення пошуку, заснованого на
значенні певного атрибуту. Зазвичай у файлових системах файли сортуються по
імені. NTFS дозволяє використовувати для сортування будь-який атрибут, якщо він
зберігається в резидентній формі.
Є дві форми зберігання списку файлів.
Невеликі каталоги (small indexes). Якщо кількість файлів в каталозі невелика,
то список файлів може бути резидентним в записі в MFT, що є каталогом (рисунок
4.4.11). Для резидентного зберігання списку використовується єдиний атрибут —
Index Root. Список файлів містить значення атрибутів файлу. За умовчанням це
ім’я файлу, а також номер запису MTF, що містить початковий запис файлу.

27.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Каталоги NTFS. Кожен каталог NTFS є одним входом в таблицю MFT, який містить атрибут Index
Root. Індекс містить список файлів, що входять в каталог. Індекси дозволяють сортувати файли для
прискорення пошуку, заснованого на значенні певного атрибуту. Зазвичай у файлових системах
файли сортуються по імені. NTFS дозволяє використовувати для сортування будь-який атрибут,
якщо він зберігається в резидентній формі.
Є дві форми зберігання списку файлів.
Невеликі каталоги (small indexes). Якщо кількість файлів в каталозі невелика, то список файлів
може бути резидентним в записі в MFT, що є каталогом (рисунок 4.4.11). Для резидентного
зберігання списку використовується єдиний атрибут — Index Root. Список файлів містить значення
атрибутів файлу. За умовчанням це ім’я файлу, а також номер запису MTF, що містить початковий
запис файлу.
Рисунок 4.4.11 – Запис невеликого каталогу NTFS в таблиці MFT

28.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Великі каталоги (large indexes). У міру того як каталог росте, список файлів
може зажадати нерезидентної форми зберігання. Проте початкова частина списку
завжди залишається резидентною в кореневому запису каталогу в таблиці MFT
(рисунок 4.4.12). Імена файлів резидентної частини списку файлів є вузлами так
званого В-дерева (двійкового дерева). Інші частини списку файлів розміщуються
зовні MFT. Для їх пошуку використовується спеціальний атрибут Index Allocation,
що є адресами відрізків, що зберігають інші частини списку файлів каталогу. Одні
частини списків є листям дерева, а інші є проміжними вузлами, тобто містять
разом з іменами файлів атрибут Index Allocation, що вказує на списки файлів
нижчих рівнів.

29.

2 ФАЙЛИ ТА КАТАЛОГИ В NTFS
Рисунок 4.4.12 - Великий каталог NTFS

30.

УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
1 Якого розміру може досягати том NTFS?
2 Який розмір кластера тому NTFS у Windows прийнято за замовчуванням?
3 Як називається операція з файловою системою NTFS, що призводить до її зміни?
4 Як в NTFS називається можливість виділення для кожного користувача обмеженого
простору на диску?
5 Яку назву має системна структура NTFS, що містить код завантаження Windows,
інформацію про том та адреси системних файлів?
6 Яку назву має системна структура NTFS, що містить усю інформацію про
розташування файлів на томі?
7 З якого символу починаються імена системних файлів у файловій системі NTFS?
8 Що міститься в системному файлі $Boot файлової системи NTFS?
9 Що міститься в системному файлі $Mft файлової системи NTFS?
10Що міститься в системному файлі $MftMirr файлової системи NTFS?

31.

УЗАГАЛЬНЕННЯ ВИВЧЕНОГО МАТЕРІАЛУ:
Усно дайте відповіді на питання.
11 В якому системному файлі файлової системи NTFS міститься інформація про усі
операції, що змінюють структуру тому NTFS?
12 В якому системному файлі файлової системи NTFS міститься інформація про том
(ім’я тому, версія NTFS, набір прапорів стану тому)?
13 В якому системному файлі файлової системи NTFS міститься інформація про
зайняте та вільне місце тому?
14 В якому системному файлі файлової системи NTFS міститься інформація про усі
кластери, що мають збійні сектори?
15 В якому системному файлі файлової системи NTFS міститься таблиця можливих на
цьому томі типів атрибутів файлів?
16 Яку назву мають типи номерів кластерів файлової системи NTFS, що позначають
порядковий номер кластера усередині групи?

32.

ДОМАШНЄ ЗАВДАННЯ
В Moodle пройти Тест до теми 4.4.
English     Русский Rules