![]() |
Первичные разделы | |
![]() |
Дополнительные (расширенные) разделы | |
![]() |
Подразделы дополнительного раздела | |
![]() |
Изменение размеров разделов | |
![]() |
Назад к оглавлению |
Для организации операционных систем дисковое адресное пространство блоков разделяется на части, называемые разделами (partitions). Разделы полностью подобны целому диску в том, что они состоят из смежных блоков. Благодаря такой организации для описания раздела достаточно указания начала раздела и его длины в блоках. Уровень физических разделов (уровень 3 в иерархии, представленной в разделе Структурная схема HDD) возник в ходе исторического развития. На первых жестких дисках не было разделов. Жесткие диски были полными аналогами гибких дисков в том, что содержали только одну файловую систему. В те времена этой, по существу, единственной файловой системой для PC была FAT12. Она была рассчитана всего на 4096 кластеров, и была способна покрыть от 2 до 32Мб адресного пространства диска, что вскоре привело к проблемам, потому что жесткие диски постоянно совершенствовались. Наиболее простым выходом в складывающейся ситуации было изобретение псевдофизических дисков œ разделов. Каждый раздел мог содержать одну файловую систему FAT12. Однако, для этого потребовалось указывать для каждого раздела его положение на диске и переводить логические адреса блоков внутри раздела в абсолютные адреса блоков. О времени этого перехода мы можем судить по усложнению структуры суперблока файловых систем FAT. Произошло это где-то с версии DOS 2.13, что соответствует, по-видимому, концу лета 1983 года. Появление разделов привело к изобретению таблицы разделов. Таблица разделов описывает до четырех разделов на диске. Расположили это таблицу в самом первом блоке диска, поскольку это был единственный путь сделать ее легко доступной в процессе загрузки. После этого усложнения структуры первый блок диска получил название Главной Загрузочной Записи (MBR - Master Boot Record). Ограничение таблицы разделов только четырьмя разделами со временем оказалось неудобным. По этой причине появилось деление разделов на первичные и расширенные. На сегодняшний день деление жесткого диска на разделы является стандартной и обязательной процедурой. Использование дисков без деления на разделы невозможно. Необходимость разбиения диска на несколько разделов обусловлена следующими причинами:
Разделы
создаются программой fdisk, имя которой стандартно практически
для всех OS.
наверх
Первичные
разделы
наверх
Внутреннее устройство расширенного раздела
В первом блоке расширенного раздела хранится таблица разделов, аналогичная таблице разделов MBR (формат ее абсолютно такой же как и в MBR). Первая запись в этой таблице описывает некоторый подраздел относительно положения самой этой таблицы раздела, а вторая не описывает раздел, а является абсолютной ссылкой (относительно начала всего диска) на следующую расширенную таблицу разделов. Большинство системных программ требует, чтобы:
наверх
Подразделы
дополнительного раздела полностью аналогичны первичным разделам. Они
могут содержать файловые системы и служить для свопинга. Они
не могут быть полностью выровнены на границу цилиндров, поскольку
перед ними располагается расширенная таблица разделов, под
которую резервируется целиком вся дорожка. Поэтому они
начинаются в первом секторе первой дорожки диска. Существует
путаница между подразделами расширенного раздела и логическими дисками. Путаница
исходит из утилиты fdisk. Эта утилита создает подразделы
внутри дополнительного раздела и именует их логическими дисками. Однако
логическим диском является отформатированный раздел, содержащий
файловую систему FAT, NTFS или HPFS, то
есть понятную операционной системе. Но далеко не всякий подраздел обязан
содержать именно такую систему.
наверх
Размер раздела хранится на физическом уровне в двух местах:
Таким образом, основной трудностью при изменении размеров раздела является синхронизация этих изменений. Изменить размер только в одном месте недостаточно. Файловая система никогда не подстраивается под размер раздела после того, как произведено логическое форматирование диска. Файлы всегда размещаются на пространстве диска, длина которого определяется в суперблоке файловой системы. Поэтому при нарушении равенства значений длины раздела из суперблока и таблицы разделов возникает опасность того, что разные файловые системы пересекутся на диске, и это, рано или поздно, приведет к повреждению файлов. Изменение размера форматированного раздела должно производиться с помощью специальных программ. Эти программы понимают файловую систему, диагностируют, содержит ли та часть раздела, которую предполагается удалить, файлы, переносят их в другое место, укорачивают или удлиняют служебные структуры, такие как FAT, MFT или inode. Лишь после того, как управляющие структуры файловой системы адаптированы к новому значению её размера, это новое значение может быть поставлено в суперблоке, а потом и в таблице разделов. Изменение неформатированного раздела производится гораздо легче. Поскольку файловая система там отсутствует, то суперблока нет и достаточно лишь изменить значения в таблицах разделов.
ВНИМАНИЕ! При разбивке диска заново часто возникает ситуация, когда новый раздел создан так, что его начало совпадает с началом старого раздела. Хотя пользователь обычно считает такой раздел неформатированным, он обычно содержит исправный суперблок старого раздела, в котором указано старое значение длины раздела. Утилиты форматирования (по крайней мере для разделов FAT) используют это значение при форматировании нового раздела, что приводит к ошибке. Рекомендуется удалять суперблок перед форматированием с помощью редактора диска.