Linux для пользователя | страница 22



Linux использует только поля start и length таблицы разбиения диска и поддерживает разделы, содержащие до 232 секторов, т. е. размер раздела может достигать 2 Тбайт.

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

Программа sfdisk в Linux показывает всю цепочку:

[root]# sfdisk -l -x /dev/hda


Disk /dev/hda: 784 cylinders, 255 heads, 63 sectors/track

Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0


Device     Boot    Start    End    #cyls     #blocks      Id    System

/dev/hda1   *       0+      189      190-    1526143+    6    FAT16

/dev/hda2        190        783      594      4771305     5    Extended

/dev/hda3           0          —         0             0          0    Empty

/dev/hda4           0          —         0             0          0    Empty


/dev/hda5        190+      380      191-    1534176     6    FAT16

   —                381        783      403      3237097+   5    Extended

   —                190        189        0                0       0    Empty

   —                190        189        0                0       0    Empty


/dev/hda6        381+      783      403-    3237066     7    HPFS/NTFS

   —                381        380          0             0        0    Empty

   —                381        380          0             0        0    Empty

   —                381        380          0             0        0    Empty

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