Смекни!
smekni.com

Методика восстановления данных при различных файловых системах (стр. 3 из 7)

Эти секторы немного похожи на загрузочные секторы разделов, так как содержат таблицы со специальной информацией о логическом диске.

■ Блок параметров диска, в котором содержится специфическая информация, например размер раздела, количество используемых секторов диска, размер кластера и метка тома.

■ Загрузочный код — программа, которая начинает процесс загрузки операционной сис темы. Для DOS и Windows 9x/Me этофайл Io . sys.

Загрузочный сектор дискеты загружается ROMBIOS, а при загрузке системы с жесткого диска MBR передает управление загрузочному сектору активного раздела. В обоих случаях загрузочный сектор логического диска получает управление. Он выполняет некоторые проверки и затем пытается прочитать с диска первый системный файл (в DOS/Windows это файл Io . sys). Загрузочный сектор не виден, так как находится вне области хранения файлов логического диска.

Загрузочный сектор логического диска создается программой DOS и Windows9xFormat. На жестком диске загрузочные секторы есть в начале каждого логического диска как в основном, так и в дополнительном разделах. Все загрузочные секторы наряду с данными о логическом диске содержат специальную запись, однако при загрузке выполняется код только того сектора, который находится в активном разделе. Остальные секторы просто считываются операционной системой для определения параметров логических дисков.

Загрузочный сектор логического диска состоит из программы (выполняемого кода) и области данных. Эта информация необходима операционной системе для определения размера логического диска и размещения таких структур, как FAT. Формат блока параметров диска весьма специфичен. Ошибки в этом блоке могут привести к проблемам при загрузке DOS или к отсутствию доступа к диску.

В табл. 4 приведены форматы загрузочного сектора DOS различных версий.\

Таблица 26.4. Форматы загрузочной записи различных версий DOS

Корневой каталог

Каталог — это база данных, содержащая информацию о записанных на диске файлах. Каждая запись в ней имеет длину 32 байт, и между записями не должно быть никаких разделителей. В каталоге сохраняется практически вся информация о файле, которой располагает операционная система.

■Имя файла и расширение — восемь символов имени и три символа расширения; точка между именем и расширением файла подразумевается, но не включается в эту запись.

■ Байт атрибутов файла, содержащий флаг, который представляет стандартные атри буты файла.

■ Время и дата создания файла или его модификации.

■ Размер файла в байтах.

■ Ссылка на начальный кластер — номер кластера, с которого начинается файл.

Информация о расположении файла, т.е. расположении оставшихся кластеров, содержится в FAT.

Существует два основных типа каталогов: корневой каталог и подкаталог. Различаются они максимальным количеством хранящихся файлов. На каждом логическом диске в фиксированном месте, сразу же за копиями FAT, располагается корневой каталог. Размеры корневых каталогов варьируются в зависимости от размера диска, но каждый конкретный корневой каталог имеет фиксированное максимальное число файлов. Длина корневого каталога фиксируется при создании логического диска и не может быть изменена в процессе работы. Размер корневого каталога различных накопителей приведен в табл. 5. В отличие от корневого каталога, подкаталог может хранить произвольное количество файлов и расширяться по мере необходимости.

Таблица 5. Размер корневого каталога


Все каталоги имеют одинаковую структуру. Записи в этой базе данных сохраняют важную информацию о файлах, которая связана с информацией, хранящейся в FAT, посредством одного из полей записи — номера первого занимаемого файлом кластера на диске. Если бы все файлы на диске не превышали размеров одного кластера, потребности в FAT вообще бы не возникло. В FAT содержится информация о файле, отсутствующая в каталоге, — номера кластеров, в которых расположен весь файл.

Чтобы отследить расположение всего файла на диске, обратитесь к каталогу и выясните номер первого кластера и длину файла. Затем, используя таблицу размещения файлов, просмотрите цепочку кластеров, занимаемых файлом, пока не дойдете до конца файла.

Формат 32-байтовой записи в каталоге приведен в табл. 6.

Таблица 6. Формат каталога

Смещение

Слово соответствует двум байтам в обратном порядке, двойное слово — двум словам в обратном порядке.

Имена файлов и их расширения записаны с привязкой к левому краю и дополнены до максимальной длины пробелами, т.е. имя файла ALбудет реально сохранено как AL, где точки обозначают пробелы.

В табл. 7 приводятся используемые в записях каталогов атрибуты файлов.

Таблица 7 Атрибуты файлов

Позиция бита в шестнадцатеричном формате

Таблица размещения файлов

Таблица размещения файлов (FAT) содержит номера кластеров, в которых расположены файлы на диске. Каждому кластеру в FAT соответствует одно число. Секторы, не содержащие пользовательских данных (файлов), не отражены в FAT. К таким секторам относятся загрузочные секторы, таблицы размещения файлов и секторы корневого каталога.

В файловой системе FAT дисковое пространство разбивается не на секторы, а на группы секторов, которые называются кластерами (ячейками размещения). Кластер содержит один или несколько секторов. Размер кластера определяется при делении диска на разделы с помощью программы Fdisk и зависит от размера создаваемого раздела. Наименьший размер диска, который может занимать файл ненулевого размера, — один кластер. Каждый файл использует целое число кластеров. Например, если файл занимает на один байт больше размера кластера, то для его размещения на диске будет выделено два кластера.

FAT — это электронная таблица, управляющая распределением дискового пространства. Каждая ячейка этой таблицы связана с определенным кластером на диске. Число, содержащееся в этой ячейке, сообщает о том, использован ли данный кластер под какой-либо файл и, если использован, где находится следующий кластер этого файла.

Каждая ячейка FAT хранит шестнадцатеричное значение длиной 12 или 16 бит. Шестнадцатиразрядные FAT более удобны в работе, так как значительно легче редактировать поля размером в два байта, чем в полтора. Чтобы самостоятельно отредактировать FAT, вы должны выполнить некоторые математические преобразования для получения номера кластера. К счастью, многие программы позволяют отредактировать FAT автоматически. В большинстве этих программ номера кластеров представлены в десятичном виде, наиболее удобном для пользователей. В табл. 26.9 приведены данные о каталоге и FAT (файл не фрагментирован).

В FAT кластеры с ненулевыми значениями используются, а специальное значение указывает дальнейшее расположение файла. В рассматриваемом примере в кластере 1000 указывается кластер 1001, в 1001 — 1002, в 1002— 1003, а в 1003 записано значение FFFFh, т.е. на этом кластере файл заканчивается. Рассмотрим пример с фрагментированным файлом. Пусть файл Usconst. txt записан, начиная с кластера номер 1000. А файл Pledge . txt начинается с кластера 1002. Таким образом, файл Usconst. txt становится фрагментированным. Описанная ситуация иллюстрируется данными в табл. 9

Таблица 9 Записи о фрагментированном каталоге FAT

В данном примере в файл Usconst. txt "внедряется" файл Pledge . txt, что приводит к непоследовательному расположению файлов на диске, т.е. фрагментации. В операционных системах DOS и Windows есть программы дефрагментации, которые перемещают файлы для их последовательного размещения на диске.

Первые две записи FAT зарезервированы и содержат информацию о самой FAT, все остальные указывают на соответствующие кластеры диска. Большинство записей FAT состоит из ссылок на кластеры, в которых содержатся части определенного файла, а некоторые содержат специальные шестнадцатеричные значения:

■ 0000h — кластер не используется;

■ FFF7h— как минимум один сектор в кластере поврежден и не может быть использо ван для хранения данных;

■ FFF8h—FFFFh— кластер содержит конец файла.

Тип используемых FAT определяется программой Fdisk, хотя записываются они в процессе форматирования высокого уровня программой Format. На всех дискетах применяется 12-разрядная FAT, а на жестком диске может использоваться как 12-, так и 16-разрядная FAT, в зависимости от размера логического диска. На дисках размером меньше 16 Мбайт (32 768 секторов) применяется 12-разрядная FAT, на дисках большего размера— 16-разрядная, а на дисках размером более 512 Мбайт при использовании Windows 95 OSR2 и Windows 98 — 32-разрядная FAT.

Программа Fdisk обычно создает на одном диске две копии FAT. Каждая копия занимает несколько последовательных секторов на диске, и вторая копия записывается непосредственно после первой. К сожалению, операционная система использует вторую копию FAT только в том случае, когда невозможно прочитать секторы, содержащие первую копию. Таким образом, если первая копия FAT пропадет (весьма распространенная ситуация), операционная система не будет использовать вторую копию. Даже команда Chkdsk не проверяет вторую копию FAT. Кроме того, каждый раз, когда операционная система обновляет первую копию FAT, большие участки первой копии автоматически копируются во вторую. Если же первая копия повреждена, то и вторая окажется поврежденной: после обновления FAT вторая копия отражает все изменения в первой копии, включая и ошибки. Обе копии FAT редко отличаются одна от другой, по крайней мере в течение продолжительного срока: при обновлении первая копия FAT автоматически копируется во вторую.