Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Разделы

Весь жесткий диск может быть разбит на несколько разделов (partitions), причем каждый раздел представлен так, как если бы это был отдельный диск. Разделение используется, например, при работе с двумя операционныи системами на одном диске. При этом каждая операционная система использует для работы отдельный раздел и не взаимодействует с другими. Таким образом, две различные системы могут быть установлены на одном жестком диске. Без использования разделов в данном случае возникла бы необходимость в приобритении второго диска.

Для гибких дисков разделы не предусмотрены. В большинстве случаев для этого нет необходимости, так как их объем достаточно мал. CD-ROM'ы также не поддерживают разделы, поскольку они создавались для использования в качестве одного диска большой емкости.

MBR, boot-секторы и таблица разделов

Информация о разделении жесткого диска находится в первом секторе (т.е. в первом секторе первой дорожки первого диска). Этот сектор называется MBR (сокращение от Master Boot Record) этого диска. При загрузке компьютера BIOS загружает его в память и выполняет. MBR содержит небольшую программу, которая считывает таблицу разделов, находит активный раздел (т.е. раздел, отмеченный как загрузочный) и считывает первый сектор этого раздела, который называется загрузочным сектором (boot sector). MBR также является загрузочным сектором, но он выполняет специальные функции и поэтому имеет отдельное название. Этот сектор содержит другую небольшую программу, которая, в свою очередь, считывает начальную часть операционной системы, расположенной в этом разделе, а затем выполняет ее.

Схема разделения не встроена в оборудование или даже в BIOS. Это только стандарт, которого придерживается большое количество операционных систем. Не все системы поддерживают его, но они являются исключениями. Некоторые системы поддерживают разделение, но они занимают всего один раздел на диске и используют свою внутреннюю схему разделения в пределах используемого раздела. Такие операционные системы нормально работают с другими системами (включая Linux), которые находятся на том же диске. Но те операционные системы, которые не поддерживают разделы, не могут быть установлены вместе с другими системами на одном диске.

Из мер предосторожности следует записать таблицу разделов. Если эта таблица каким-либо образом повредится, то все файлы останутся в сохранности (испорченная таблица разделов может быть исправлена при помощи программы fdisk). Информация о разделах может быть получена командой fdisk -l:

$ fdisk -l /dev/hda
 
Disk /dev/hda: 15 heads, 57 sectors, 790 cylinders
Units = cylinders of 855 * 512 bytes
 
Device Boot  Begin   Start     End  Blocks   Id  System

/dev/hda1           1       1      24   10231+  82  Linux swap

/dev/hda2          25      25      48   10260   83  Linux native

/dev/hda3          49      49     408  153900   83  Linux native

/dev/hda4         409     409     790  163305    5  Extended

/dev/hda5         409     409     744  143611+  83  Linux native

/dev/hda6         745     745     790   19636+  83  Linux native
$

Расширенные и логические разделы

Изначально, в схеме разделения жесткого диска в PC допускалось использование только четырех разделов. Но вскоре этого оказалось недостаточно, частично по причине того, что многим для работы требуется более четырех операционных систем (например, Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, Windows/NT и т.д.), но в основном из-за того, что одной системой используется несколько разделов. Например, в системе Linux swap-область чаще всего размещается в отдельном разделе (а не в основном разделе Linux) для повышения скорости обмена (см. ниже).

Для решения этой проблемы была разработана схема, использующая расширенные разделы (extended partitions). Она позволяет разбивать основной раздел (primary partition) на подразделы. Основной раздел, разбитый таким образом, называется расширенным разделом (extended partition), а подразделы называются логическими разделами (logical partitions). Они функционируют так же, как и основные разделы, различие состоит в схеме их создания.

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

  иммммммммммммммммммммммммммммммммммммммй
  п MBR                                  п
  лммммммммммммммммммммммммммммммммммммммоддддддддддддд
  п Загрузочный сектор                   п
  п--------------------------------------п  Основной
  п                                      п
  п Область данных раздела               п   раздел
  п                                      п
  лммммммммммммммммммммммммммммммммммммммоддддддддддддд
  п Загрузочный сектор                   п           П
  пддддддддддддддддддддддддддддддддддддддп           П
  п Неиспользуемый загрузочный сектор    п ЛогическийП
  п--------------------------------------п           П
  п                                      п   раздел  П
  п Область данных раздела               п           П
  п                                      п           П Расширенный
  пддддддддддддддддддддддддддддддддддддддпддддддддддд╤
  п Неиспользуемый загрузочный сектор    п           П   раздел
  п--------------------------------------п ЛогическийП
  п                                      п           П
  п Область данных раздела               п   раздел  П
  п                                      п           П
  лммммммммммммммммммммммммммммммммммммммоддддддддддддд
  п                                      п
  п Неиспользуемое дисковое пространство п
  п                                      п
  лммммммммммммммммммммммммммммммммммммммоддддддддддддд
  п Загрузочный сектор                   п
  п--------------------------------------п  Основной
  п                                      п
  п Область данных раздела               п   раздел
  п                                      п
  хммммммммммммммммммммммммммммммммммммммьддддддддддддд

Типы разделов

Таблицы разделов (одна находится в MBR, другие используются для расширенных разделов) содержат один байт для каждого раздела, который указывает тип раздела. Это позволяет определить операционную систему, которая использует раздел или для чего он используется во избежание случайного размещения двух систем на одном разделе. Однако, в действительности, операционные системы игнорируют байт типа раздела. Например, система Linux вообще не имеет представления о его существовании. Хуже того, некоторые системы неправильно его интерпретируют (по крайней мере, некоторые версии DR-DOS игнорируют самый важный бит этого байта, в отличие от других).

Не существует никаких стандартов, касающихся значений этих байтов, хотя некоторые общепринятые значения приведены в таблице ниже. Такую же информацию предоставляет программа Linux fdisk.

Таблица 4-1. Типы разделов (по данным программы fdisk из Linux).

0 Empty 40 Venix 80286 94 Amoeba BBT
1 DOS 12-bit FAT 51 Novell? a5 BSD/386
2 XENIX root 52 Microport b7 BSDI fs
3 XENIX usr 63 GNU HURD b8 BSDI swap
4 DOS 16-bitf <32M 64 Novell c7 Syrinx
5 Extended 75 PC/IX db CP/M
6 DOS 16-bit >=32M 80 Old MINIX e1 DOS access
7 OS/2 HPFS 81 Linux/MINIX e3 DOS R/O
8 AIX 82 Linux swap f2 DOS secondary
9 AIX bootable 83 Linux native ff BBT
a OS/2 Boot Manager 93 Amoeba    

Разделение жесткого диска на разделы

Существует много программ, позволяющих создавать и удалять разделы. У большинства операционных систем имеются свои собственные и разумнее всего пользоваться именно такими программами. Чаще всего эта программа называется fdisk (как и в случае Linux). Особенности работы с ней рассмотрены в ее руководстве. Команда cfdisk подобна fdisk, только в первой используется полноэкранный интерфейс.

При pаботе с IDE дисками, загрузочный раздел (раздел, в котором находятся файлы, используемые при загрузке и само ядро) должен полностью располагаться в пределах первых 1024 цилиндров, потому как во время загрузки работа с диском происходит через BIOS (перед переходом системы в защищенный режим), а BIOS не может оперировать с цилиндрами, номер которых больше, чем 1024. Иногда представляется возможным использование загрузочного раздела, лишь частично расположенного в пределах первых 1024 цилиндров. Данный метод работает до тех пор, пока все файлы, считываемые посредством BIOS, находятся в пределах 1024 цилиндров. Так как это сделать довольно сложно, то пpименение этого метода не рекомедуется. Сложно предугадать, когда после дефрагментации или сбрасывании содержимого буфера на диск система перестанет загружаться. Поэтому следует удостовериться в том, что загрузочный раздел расположен в пределах первых 1024 цилиндров.

Некоторые последние версии BIOS и недавние модели IDE дисков в действительности позволяют pаботать с цилиндрами, номер которых превышает 1024.

Каждый раздел должен содержать четное количество секторов, так как в системе Linux используются блоки размером в 1 Кб, т.е. два сектора. Нечетное количество секторов приведет к тому, что последний из них будет неиспользован. Это ни на что не влияет, но пpи запуске fdisk будет выдано пpедупpеждение.

При изменении размера раздела обычно требуется сначала сделать резервную копию всей необходимой информации, удалить раздел, создать новый раздел, а затем восстановить всю сохраненную информацию на новый раздел. Хотя существует программа для MS-DOS под названием fips, которая позволяет изменять объем раздела без резервного копирования, но для других файловых систем эту опеpацию необходимо пpоизводить.

Файлы устройств и разделы

Каждому основному и расширенному разделу соответствует отдельный файл устpойства. Существует соглашение для имен подобных файлов, которое состоит в добавлении номера раздела к имени файла самого диска. 1-4 разделы являются основными (вне зависимости от того, сколько существует основных pазделов), а 5-8 - логическими (вне зависимости от того, к какому основному разделу они относятся). Например, /dev/hda1 соответствует первому основному разделу первого IDE жесткого диска, а /dev/sdb7 третьему расширенному разделу второго SCSI диска.