Терминологические соответствия для обычных (basic) и динамических (dynamic) дисков приведены в табл. 5.5.
Базовые разделы (Basic disks) | Динамические разделы (Dynamic disks) |
---|---|
Основный раздел (Primary partition) | Простой том (Simple volume) |
Системный и загрузочный разделы (System and boot partitions) | Системный и загрузочный тома (System and boot volumes) |
Активный раздел (Active partition) | Активный том (Active volume) |
Расширенный раздел (Extended partition) | Том и свободное пространство (Volume and unallocated space) |
Логический диск (Logical drive) | Простой том (Simple volume) |
Набор томов (Volume set) | Составной том (Spanned volume) |
Чередующийся набор (Stripe set) | Чередующийся том (Stripe set) |
Динамические диски не пользуются таблицей разделов, а потому и не имеют проблем, связанных с ограничением разрядности адресации CHS, и позволяют создавать тома практически неограниченного размера. Однако динамические диски, созданные путем обновления основных разделов, все-таки остаются в таблице разделов, при этом для них значение поля Boot ID
меняется на 42h
. Если эта информация будет удалена, система откажется подключать такой динамический диск. Между прочим, операционная система Windows может быть установлена только на такой динамический диск, который был получен путем обновления базового, так как BIOS может загружать систем) лишь с тех разделов, которые перечислены в таблице разделов. При этом динамические диски, созданные "на лету", в таблицу разделов как раз и не попадают.
Схема разбиения динамических дисков содержится в базе данных менеджера логических дисков (Logical Disk Manager Database, LDM). Это — протоколируемая (journalled) база данных, поддерживающая транзакции и устойчивая к сбоям. Если в процессе манипуляции с томами вдруг происходит сбой питания, то при последующем включении компьютера будет выполнен откат (rollback) в предыдущее состояние. При переносе винчестера, содержащего один или несколько динамических дисков, на другой компьютер они автоматически распознаются и монтируются, как обыкновенные диски.
База данных LDM хранится в последнем мегабайте жесткого диска, а для дисков, полученных путем обновления базового раздела до динамического, — в последнем мегабайте этого раздела. Как уже говорилось, идентификатор загрузки Boot ID
соответствующей записи таблицы разделов принимает значение 42h
. Так происходит потому, что при стандартном разбиении винчестера в его конце просто не остается свободного места, и операционной системе приходится сохранять эту информацию непосредственно на самом обновляемом диске (естественно, для этого на нем необходимо иметь по меньшей мере 1 Мбайт свободного пространства).
Сразу же за таблицей разделов по адресу 0/0/2
расположен приватный заголовок PRIVHEAD
, содержащий в себе ссылки на основные структуры LDM (рис. 5.8). Если PRIVHEAD
погибнет, Windows не сможет обнаружить и смонтировать динамические диски. К сожалению, гибнет он удручающе часто. Подавляющее большинство загрузочных вирусов и дисковых менеджеров считают сектор 0/0/2
свободным и используют его для хранения своего тела, необратимо затирая прежнее содержимое. Осознавая значимость заголовка PRIVHEAD
, разработчики из Microsoft сохранили его в двух копиях, одна из которых хранится в конце LDM, а другая — в последнем секторе физического диска. Благодаря такой избыточности PRIVHEAD
практически никогда не приходится восстанавливать вручную. Однако если такая необходимость все же возникнет, обратитесь к проекту LINUX-NTFS за подобным описанием его структуры (http://www.linux-ntfs.org/), здесь же оно по соображениям экономии места не приводится.
Рис. 5.8. База данных LDM и ее дислокация