Головна файлова таблиця

Головна файлова таблиця
Data Recovery Tips Solutions: Windows. Linux, and BSD "id =" b_cover ">

Книга являє собою покрокове керівництво по відновленню пошкоджених даних на жорстких і оптичних дисках. Детально розглянуто структуру популярних файлових систем: NTFS, ext2 / ext3, UFS / FFS і ін. Описано автоматичні методи відновлення даних для операційних систем Windows і Linux. Наведено способи ручного відновлення, що використовуються в разі, коли автоматичне відновлення неможливе. Матеріал супроводжується великою кількістю корисних порад і вичерпним довідковим матеріалом. На компакт-диску помішані корисні утиліти і вихідні коди, наведені в книзі.

Для користувачів ПК

Книга: Відновлення даних. практичний посібник

Головна файлова таблиця

Головна файлова таблиця

В процесі форматування логічного розділу в його початку створюється так звана зона MFT (рис. 6.2). За умовчанням вона займає 12,5% від ємності тому (а не 12%, як стверджується в багатьох публікаціях), хоча, залежно від значення параметра NtfsMftZoneReservation. вона може становити 25%, 37% або 50%.

Мал. 6.2. Структура тому, відформатованого під NTFS

У цій області розташовано файл $ MFT. спочатку займає близько 64 секторів і зростаючий від початку зони MFT до її кінця в міру створення нових користувальницьких файлів і каталогів. Чим більше файлів міститься на томі, тим більше розмір MFT. Приблизний розмір файлу MFT можна оцінити за такою формулою: sizeof (FILE Record) * N Files. де sizeof (FILE Record) зазвичай становить 1 Кбайт, а N Files - загальна кількість файлів і підкаталогів розділу, включаючи недавно віддалені.

Для запобігання фрагментації файлу $ MFT зона MFT утримується зарезервованої аж до повного вичерпання вільного простору тому, потім незадіяний "хвіст" зони MFT усікається в два рази, звільняючи місце для призначених для користувача файлів. Цей процес може повторюватися багато разів, аж до повної віддачі всього зарезервованого простору. Рішення красиве, хоча і не нове. Багато з файлових систем вісімдесятих років минулого століття дозволяли резервувати заданий дисковий простір в хвості активних файлів, скорочуючи їх фрагментацію (причому будь-яких файлів, а не тільки службових). Наприклад, така здатність була у DOS 3.0, розробленої для персональних комп'ютерів типу "Агат". Може бути, хтось із вас пам'ятає таку машину?

Коли файл $ MFT досягає меж зони MFT, в ході свого подальшого зростання він неминуче фрагментируется, викликаючи обвальне падіння продуктивності файлової системи. При цьому варто зауважити, що переважна більшість дефрагментаторів файл $ MFT не обробляють! А адже API дефрагментації, вбудований в штатний драйвер NTFS, забезпечує таку можливість!

Примітка

Файл $ MFT являє собою масив записів типу FILE Record (в термінології UNIX вони називаються inodes), кожна з яких описує відповідний їй файл або підкаталог. На практиці один файл або підкаталог повністю описується єдиним записом типу FILE Record. хоча в теорії цих записів може знадобитися і кілька.

Таблиця 6.2. Структура файлової посилання

Номер послідовності (sequence number)

При видаленні файлу або каталогу відповідна йому файлова послідовність позначається як невживана. При створенні нових файлів записи, помічені як невикористовувані, можуть бути задіяні знову, при цьому лічильник номера послідовності, що зберігається всередині файлового запису, збільшується на одиницю. Цей механізм дозволяє відстежувати "мертві" посилання на вже вилучені файли. Номер послідовності всередині файлової посилання в цьому випадку буде відрізнятися від номера послідовності відповідного файлового запису. Цією перевіркою займається утиліта chkdsk, але автоматично вона, наскільки мені відомо, не виконується.

Перші 12 записів в MFT завжди займають службові метафайли: $ MFT (власне, сам файл $ MFT), $ MFTMirr (дзеркало $ MFT), $ LogFile (файл транзакцій), $ Volume (відомості про дисковий томі), $ AttrDef (визначення атрибутів ), '.' (Кореневої каталог), $ Bitmap (карта вільного простору), $ Boot (системний завантажувач), $ BadClus (перелік поганих кластерів) і т.д. Більш детально ці записи описані в табл. 6.11.

Записи з 12 по 15 позначені як використовувані, в той час як в дійсності вони порожні. Як нескладно здогадатися, вони зарезервовані для використання в майбутньому. Записи з 16 по 23 не задіяні і чесно позначені як невикористовувані.

Ось і вся теоретична інформація, необхідна на перших порах. Тепер можна приступати до практичного знайомству з NTFS. Для початку запустимо утиліту DiskExplorer від Runtime Software, не забуваючи про те, що вона вимагає прав адміністратора. В меню File знайдемо пункт Drive. і в діалоговому вікні виберемо логічний диск, який вимагає редагування. Потім з меню Goto виберемо пункт Mft. змушуючи DiskExplorer перейти до MFT, автоматично змінюючи режим відображення на найбільш природний (рис. 6.3). Як варіант, можна натиснути клавішу (View as File Entry) і пропустити кілька перших секторів натисканням клавіші .

Головна файлова таблиця

Мал. 6.3. Утиліта DiskExplorer відображає головний файловий запис у природному форматі

Для кожного з файлів DiskExplorer повідомляє наступне.

Номер сектора, до якого дана файловий запис належить. Зверніть увагу, що номери секторів монотонно збільшуються на 2, підтверджуючи той факт, що розмір одного файлового запису дорівнює 1 Кбайт, хоча на практиці можна зіткнутися і з іншими значеннями. Для зручності інформація відображається відразу в двох системах числення - шестнадцатеричной і десяткової.

Тип файлової записи, який вказує, файл це або каталог.

Атрибути файлу або каталогу: a (archive) - архівний, r (read-only) - захищений від записи, тобто доступний тільки для читання, h (hidden) - прихований, s (system) - системний, l (label) - мітка томи, d (directory) - каталог, з (compressed) - стислий.

Розмір файлу в байтах у десятковій системі числення (не для каталогів!).

Дату і час модифікації файлу або каталогу.

Номер першого кластера файла або каталогу (або resident - для повністю резидентних файлів і каталогів).

Перелік типів атрибутів NTFS, наявних у файлу або каталогу, записаних в шістнадцятковій нотації (зазвичай цей рядок має такий вигляд: 10 30 80 - атрибут стандартної інформації, атрибут імені і атрибут даних файлу). Більш детальна інформація з даного питання буде приведена далі в цій главі.

Індекс файлового запису в MFT, виражений в шістнадцятковій і десяткового системах числення і наступний за словом No: (скорочення від Number - номер).

Індекс файлового запису батьківського каталогу, виражений в шістнадцятковій і десяткового системах числення (5h - якщо файл належить до кореневого каталогу). Для швидкого переміщення по файловим записів виберіть в меню Goto пункт Mft no і введіть індекс в шістнадцятковій або десятковій нотації.

Для нерезидентних файлів або каталогів - перелік кластерів, зайнятих файлом в закодованому вигляді (а даремно - могли б і декодувати). Схема кодування кластерів докладно описана далі в цьому розділі.

Перш ніж продовжувати читання, спробуйте поекспериментувати з файлами MFT (особливо фрагментованими). Подивіться, як створюються і видаляються записи MFT. Найкраще це робити на диску, що містить невелику кількість файлів і каталогів. Щоб не форматувати логічний диск, створіть віртуальний (благо кількість оперативної пам'яті сучасних комп'ютерів це дозволяє).