Форматирование жестких дисков

Выше при рассмотрении записи служебной информации на жесткий диск на заво­де-изготовителе мы уже упоминали о низкоуровневом форматировании. Для совре­менного винчестера это этап его производства, в результате которого секторы на жестком диске размечаются окончательно. То, что называют сейчас форматирова­нием низкого уровня, сводится к простой записи нулей во все секторы, то есть к пол­ному стиранию информации в области данных. Поэтому все, что делается с жест­ким диском после выхода его с завода, относится к форматированию высокого уровня. Оно включает в себя создание таблицы разделов и файловых систем.

Главная загрузочная запись и таблица разделов в первом секторе на любом жестком диске находятся код простой программы (загрузчика) и последовательность информационных полей (таблица разделов). Вместе программа и поля называются главной загрузочной записью (Master Boot Record – MBR).

Главная загрузочная запись создается на новом диске программой FDISK. Осна­стка Управление дисками Windows при создании раздела производит запись в MBR. Все программы наподобие Partition Magic или Acronis Disk Director тоже создают и редактируют главную загрузочную запись.

Просмотреть содержимое секторов винчестера, в том числе первого, на котором находится главная загрузочная запись, можно многими НЕХ-редакторами. В ре­дакторе Hexplorer есть отдельная команда меню Disk (Диск). При ее вызове появ­ляется окно, где следует указать номер начального сектора и количество секторов, которое программа должна прочитать. Существуют и специальные дисковые ре­дакторы, например DiskEdit из пакета Norton Utilities (http://www.symantec.com) или DiskExplorer for NTFS (http://www.runtime.org). Основное отличие дисковых редакторов от обычных бинарных — наличие широкого набора шаблонов просмот­ра данных (можно сразу интерпретировать их не только как текст, но и как загру­зочный сектор либо один из элементов файловой системы) и защиты от непредна­меренной записи на диск.

MBR занимает ровно 512 байтов — один сектор. Структура этой записи представ­лена в табл. 2.1.

Таблица 2Л. Структура MBR

Смещение

Длина, байтов

Описание

OOOh

446

Код программы-загрузчика

IBEh

16

Раздел 1

ICEh

16

Раздел 2

IDEh

16

Раздел 3

lEEh

16

Раздел 4

IFEh

2

Сигнатура (55h AAh)

Четыре 16-байтных блока, каждый из которых описывает один раздел, образу­ют таблицу разделов — Partition Table. Максимальное количество разделов, кото­рое может быть описано в MBR, — четыре. Каждый блок состоит из 10 полей (табл. 2.2).

Таблица 2.2. Поля таблицы разделов

Смещение

Длина, байтов

Описание

ООН

1

Флаг активности раздела

Olh

1

Начало раздела — головка

02h

1

Начало раздела — сектор (биты 0-5), дорожка (биты 6,7)

03h

 

Начало раздела — дорожка (старшие биты 8,9 хранятся в предыдущем байте)

04h

1

Код типа раздела

05h

1

Конец раздела — головка

06h

1

Конец раздела — сектор (биты 0-5), дорожка (биты 6,7)

07h

Конец раздела — дорожка (старшие биты 8,9 хранятся в предьщущем байте)

08h

4

Смещение первого сектора

OCh

4

Количество секторов раздела

Флаг активности указывает на то, что раздел активен. Значение OOh соответствует неактивному разделу, а Olh — активному. Из всех разделов на диске активным может быть лишь один.

Код типа раздела, находящийся по смещению 04h, — однобайтовый идентифика­тор. Если его значение равно OOh, то считается, что этого раздела не существует, и его содержимое игнорируется. Любое ненулевое значение означает, что в указан­ном пространстве находится раздел определенного типа. Так, например, иденти­фикатор 06h указывает на раздел, отформатированный в FAT 16, OBh или ОСЬ — на раздел FAT32, а 07h – на раздел NTFS.

Если на диске нужно создать больше четырех разделов, то следует использовать специальный тип раздела с кодом 05h — расширенный раздел (Extended Partition).

Расширенный раздел отличается от всех остальных типов. Он описывает не сам раздел, а область пространства накопителя, в которой описаны разделы. В том секторе, который прописан в MBR как сектор начала расширенного раздела, фактически содержится еще одна загрузочная запись — Extended Boot Record (EBR) (табл. 2.3). Кода загрузчика в ней нет, есть только таблица разделов и сиг­натура.

Таблица 2.3. Структура EBR

Смещение

Длина, байтов

Описание

IBEh

16

Указатель на раздел

ICEh

16

Указатель на следующий расширенный раздел

IFEh

2

Сигнатура (55h AAh)

Указатель на раздел описывает обычный раздел (Partition), как показано в табл. 2.2. Если обычный раздел занимает не все пространство, то в таблице разделов появ­ляется второй элемент, который вновь описывает оставшееся пространство как Extended Partition, то есть указатель на следующий EBR. В секторе, на который ссылается эта запись, точно так же описывается один раздел и, если осталось место, делается очередная запись об Extended Partition. Так продолжается до тех пор, пока пространство не будет разделено. Фактически все записи о расширенных разделах являются цепью (Extended Partition Chain), в которой от дискового пространства отрезаются кусочки, пока место не закончится. Ошибка в любом элементе этой цепи приведет к ее обрыву. Все разделы, записи о которых лежат после разрыва цепи, операционная система не сможет найти, а занимаемое этими расширенными разделами пространство она будет считать незанятым.

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

Таблица разделов указывает на первые секторы каждого раздела. Для размеще­ния файлов в разделе его следует отформатировать, то есть создать внутри раз­дела файловую систему. Основная запись файловой системы обычно начинается в первом секторе раздела. Структура записей файловой системы зависит от ее типа. Чаще всего встречаются файловые системы NTFS и FAT.

Файловая система NTFS сейчас используется на дисках 90 % домашних и офисных компьютеров. В основе ее лежит главная файловая таблица (Master File Table — MFT). Это база данных, или таблица, строки которой соответствуют файлам тома, а столбцы — атрибутам файлов. Файловая система NTFS образована девятью системными файлами, которые скрыты от просмотра обычными средствами. Эти файлы содержат таблицы занимаемых файлами кластеров и атрибутов файлов, список шагов транзакций (проведенных операций с файлами), корневой каталог и т. д. В секторе начальной загрузки указано положение сегментов данных MFT и зеркального файла MFT. В середине диска расположен дубликат сектора началь­ной загрузки.

Главная файловая таблица MFT — специальный и довольно большой файл. Пер­вые 16 строк таблицы содержат служебную информацию о ней самой:

? в начале файла MFT находится первая (основная) таблица файлов;

? за основной таблицей файлов следует зеркальная запись (Mirror record), иден­тичная первой записи MFT. Если первая таблица MFT разрушена, то данные о размещении файлов берутся из зеркального файла MFT;

? третья запись MFT ссылается на файл регистрации (log file).

Начиная с семнадцатой, записи главной файловой таблицы используются соб­ственно файлами и папками, которые также рассматриваются как файлы NTFS. Благодаря дублированию записей MFT, а также наличию файла транзакций фай­ловая система NTFS считается отказоустойчивой. Восстановление данных облег­чается теми же механизмами.

Файловая система FAT еще недавно была основной на разделах жестких дисков. Сегодня в этой системе форматируются, как правило, flash-диски и карты памяти. Файловая система FAT (точнее, системы FAT12, FAT16 и FAT32) образована четырьмя структурами:

? блок начальной загрузки (boot record), который находится в первом секторе раздела;

? таблица размещения файлов (file allocation table — FAT);

? резервная таблица размещения файлов (backup FAT), которая используется при обнаружении повреждений в основной таблице FAT;

? корневой каталог (root directory).

Структуры файловых систем создаются средствами операционной системы — ути­литой форматирования разделов либо служебными программами. На диске эти

структуры и записи, как и таблицу разделов, можно просматривать и изменять с по­мощью редакторов двоичных данных.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий