Настройка и работа в Linux

         

Разделы на диске и процесс загрузки


Жесткие диски - это блочные устройства и минимальной адресуемой единицей дискового пространства является сектор размером 512 байт. Адрес сектора задается путем указания номера цилиндра, номера считывающей головки (или дорожки) и порядкового номера сектора на дорожке. Поэтому диски часто характеризуются совокупностью трех показателей, называемых диска: число цилиндров/число дорожек в цилиндре/число секторов на дорожке (или C/H/S от первых букв соответствующих английских терминов: - cylinder, - head, - sector). Диск с геометрией C/H/S имеет емкость CXHXSX512 байт.

Физические диски в компьютерах на платформе Intel принято разбивать на разделы. Повелось это из-за того, что первые версии MS-DOS не могли обеспечить доступ к дискам большой емкости; тогда и придумали разбиение дисков на разделы. Для этого в нулевой сектор первой дорожки на нулевом цилиндре стали записывать таблицу разбиения диска на разделы (partition table). Каждый раздел может трактоваться как отдельный физический диск. В частности, в разные разделы могут быть установлены разные операционные системы. Таблица разделов содержит 4 записи по 16 байт для 4 разделов, которые называют первичными. Каждая запись имеет следующую структуру:

struct partition { char active; /* 0x80: раздел активный (загрузочный), 0: не активный */ char begin[3]; /* геометрия первого сектора */ char type; /* тип раздела (например, 83 - LINUX_NATIVE) */ char end[3]; /* геометрия последнего сектора */ int start; /* номер начального сектора; нумерация начинается с 0 */ int length; /* число секторов в разделе */ };

DOS использует поля begin и end таблицы разбиения диска и функции прерывания 13 BIOS (Int 13h) для доступа к диску и поэтому не может использовать диски емкостью более 8,4 Гбайт, а разделы из-за ограничений файловой системы FAT16 не могут быть более 2,1 Гбайт. Linux использует только поля start и length таблицы и поддерживает разделы, содержащие до 2 в степени 32 секторов, поэтому размер раздела может достигать 2 Тбайт.

Поскольку в главной загрузочной записи (MBR) только четыре строки для задания разделов, то число первичных разделов на диске ограничено: их может быть не более четырех. Когда стало ясно, что и этого мало, были изобретены логические разделы. Для этого один из первичных разделов объявляется и в нем создаются . Расширенные разделы сами по себе не используются и могут лишь хранить логические разделы. Первый сектор расширенного раздела хранит таблицу разделов с четырьмя входами: один используется для логического раздела, другой для еще одного расширенного раздела, а два не используются. Каждый расширенный раздел имеет свою таблицу разбиения, в которой, как и в первичном расширенном разделе, заняты только две строки, задающие один логический и один расширенный раздел. Таким образом, образуется цепочка из таблиц разделов, где первая описывает три основных раздела, а каждая следующая - один логический раздел и местоположение следующей таблицы.


Число логических разделов в принципе не ограничено, поскольку каждый логический раздел может содержать таблицу разделов и вложенные логические разделы. Однако реально ограничения все же есть; так, Linux может работать не более чем с 15 разделами на SCSI-дисках и не более чем с 63 разделами на IDE-дисках. Расширенный раздел как на физическом диске, так и в расширенном разделе вложенного расширенного раздела (предыдущего уровня) может быть только один: ни одна из существующих программ разбиения дисков не умеет создавать более одного расширенного раздела.

В Linux физический диск доступен по имени устройства: /dev/hda, /dev/hdb, /dev/sda и т.п. Первичные разделы обозначаются дополнительной цифрой в имени устройства: /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4; логические же разделы доступны по именам /dev/hda5, /dev/hda6 и т.д. Имена /dev/hda3 и /dev/hda4 могут быть пропущены, если третий и четвертый первичные разделы не были созданы, тогда сразу после /dev/hda2 пойдет /dev/hda5 (логический раздел в расширенном разделе /dev/hda2), а далее нумерация идет последовательно.

В Windows логические разделы получают однобуквенные имена, начиная с последнего задействованного имени первичного раздела. Если, скажем, есть один жесткий диск с двумя простыми первичными разделами (C: и D:) и одним расширенным разделом, в котором созданы два логических раздела, то эти логические разделы будут поименованы E: и F:. Впрочем, в Windows NT и

Windows 2000 с помощью диспетчера дисков разделам можно присвоить другие буквенные имена.


Содержание раздела