Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Загальна картина файлової системи

Поиск

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

Створення файлів

Процес створення файлу в системі FAT буде продемонстрований на прикладі dirl\filel.dat. В даному прикладі каталог dirl вже існує, розмір кластера складає 4096 байт, а розмір файлу — 6000 байт.

1. Ми читаємо завантажувальний сектор з сектора 0 тома і знаходимо в ньому структури FAT, область даних і кореневий каталог.

2. Аби знайти каталог dirl, ми перебираємо всі записи кореневого каталога в пошуках запису з ім'ям dirl і встановленим атрибутом каталога. Запис успішно знайдений, і її початковий кластер дорівнює 90.

3. Ми читаємо вміст початкового кластера dirl (90) і послідовно перебираємо всі записи, що зберігаються в ньому, поки не буде знайдено вільного запису каталога.

4. Ми знаходимо вільний запис і переводимо у виділений стан, записуючи в неї ім'я filel.txt. Розмір і поточний час теж записуються у відповідні поля.

5. Настає черга виділення кластерів для вмісту; переходимо до пошуку в структурі FAT. Файлу виділяється кластер 200, для чого запису цього кластера привласнюється маркер EOF.

6. Адреса кластера 200 записується в полі початкового кластера запису каталога. Перші 4096 байт вмісту файлу записуються в кластер. Залишається ще 1904 байт, тому буде потрібний другий кластер.

7. Після пошуку в структурі FAT файлу виділяється ще один кластер 201.

8. У запис FAT першого кластера (200) заноситься значення 201. Останні 1904 байт файлу записуються в кластер 201.

Стан файлової системи після створення файлу показаний на рис. 15.17.

 

Видалення файлу

Тепер розглянемо, як відбувається видалення файлу dirl\filel.txt.

1. Ми читаємо завантажувальний сектор з сектора 0 тома і знаходимо в ньому структури FAT, область даних і кореневий каталог.

2. Аби знайти каталог dirl, ми перебираємо всі записи кореневого каталога в пошуках запису з ім'ям dirl і встановленим атрибутом каталога. Запис успішно знайдений, і її початковий кластер дорівнює 90.

3. Ми перебираємо вміст початкового кластера dirl (90) у пошуках запису з ім'ям filel.txt По запису визначається початковий кластер файлу (200).

4. За допомогою структури FAT визначається ланцюжок кластерів файлу. В даному випадку файлу виділені кластери 200 і 201.

5. У записі FAT кластерів 200 і 201 заносяться нулі.

6. Запис каталога файлу filel.txt звільняється, для чого в її перший байт заносится значення 0хе5.

Підсумковий стан системи показаний на рис. 15.18. Стерті посилання позначені пунктирними лініями, а перша буква імені файлу видалена із запису каталога.

 

Прикінцеві моменти

В даній частині лекції розглянемо прийоми відновлення файлів і дії, що виконуються при перевірці файлової системи. Також ми дізнаємось, як визначити тип файлової системи по кількості кластерів у файловій системі.

Відновлення файлів

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

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

Другий метод частіше приводить до успіху, тому що він відновлює деякі фрагментовані файли. Рисунок 15.19пояснює те, що відбувається: на ньому показано шість кластерів файлової системи і три різні сценарії. Розмір файлу складає 7094 байт, а розмір кластера — 2048 байт; отже, для файлу були виділені чотири кластери. Ми також знаємо, що файл починається з кластера 56. Світло-сірі кластери представляють фактичне місцезнаходження вмісту файлу в кожному сценарії.

У сценарії на рис. 15.20 (А) файл займає чотири суміжні кластери. В цьому випадку в обох варіантах правильно відновлюються кластери 56-59. На рис. 15.20 (В) файл був розділений на три фрагменти, а кластери між фрагментами (57 і 60) були виділені іншому файлу під час відновлення. У цьому сценарії перший метод відновлює кластери 56-59 і помилково включає вміст кластера 57. Другий метод правильно відновлює сектори 56, 58, 59 і 61. На рис. 15.20 (С) показаний сценарій, при якому файлу виділені ті ж фрагменти, що і на рис. 15.20 (В), але кластери між фрагментами не були виділені іншим файлам на момент відновлення. В цьому сценарії обидва методи помилково відновлять кластери 56-59, як це було зроблено в попередньому прикладі. В процесі відновлення файлу можливі і інші ситуації, але в них частина файлу виявляється стертою, і жоден спосіб вже не зможе точно відновити дані. Таким чином, метод 2 (з врахуванням стану виділення кластерів) здатний відновлювати видалені файли частіше, ніж метод 1. Еоган Кейси протестував засоби відновлення в програмах WinHex і EnCase і з'ясував, що в WinHex версії 11.25 використовувався перший метод, а в EnCase версії 4 — другий.

І останнє зауваження, що відноситься до відновлення: багатокластерні каталоги зазвичай виявляються фрагментованими. Справа у тому, що другий кластер виділяється лише тоді, коли його потрібно буде використовувати; вкрай малоймовірно, аби наступний суміжний кластер виявився вільним (швидше за все, він був виділений одному з файлів в каталозі). Таким чином, відновлення каталогів є складнішим завданням (якщо лише каталог не був створений в результаті копіювання або файлова система недавно дефрагментувалась. При копіюванні каталога, розмір якого заздалегідь відомий, йому можна виділити суміжні кластери.

Якщо користувач часто запускає для своєї файлової системи програму дефрагментації, це спростить відновлення файлів, видалених з моменту останньої дефрагментації, — велика частина файлів зберігатиметься в суміжних секторах. З іншого боку, відновлення файлів, видалених до дефрагментації, стає вкрай складним завданням, оскільки дефрагментація могла привести до переміщення кластерів.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 336; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.97.161 (0.006 с.)