Библиотека сайта rus-linux.net
Разделы
Весь жесткий диск может быть разбит на несколько разделов (partitions), причем каждый раздел представлен так, как если бы это был отдельный диск. Разделение используется, например, при работе с двумя операционныи системами на одном диске. При этом каждая операционная система использует для работы отдельный раздел и не взаимодействует с другими. Таким образом, две различные системы могут быть установлены на одном жестком диске. Без использования разделов в данном случае возникла бы необходимость в приобритении второго диска.
Для гибких дисков разделы не предусмотрены. В большинстве случаев для этого нет необходимости, так как их объем достаточно мал. CD-ROM'ы также не поддерживают разделы, поскольку они создавались для использования в качестве одного диска большой емкости.
MBR, boot-секторы и таблица разделов
Информация о разделении жесткого диска находится в первом секторе (т.е. в первом секторе первой дорожки первого диска). Этот сектор называется MBR (сокращение от Master Boot Record) этого диска. При загрузке компьютера BIOS загружает его в память и выполняет. MBR содержит небольшую программу, которая считывает таблицу разделов, находит активный раздел (т.е. раздел, отмеченный как загрузочный) и считывает первый сектор этого раздела, который называется загрузочным сектором (boot sector). MBR также является загрузочным сектором, но он выполняет специальные функции и поэтому имеет отдельное название. Этот сектор содержит другую небольшую программу, которая, в свою очередь, считывает начальную часть операционной системы, расположенной в этом разделе, а затем выполняет ее.
Схема разделения не встроена в оборудование или даже в BIOS. Это только стандарт, которого придерживается большое количество операционных систем. Не все системы поддерживают его, но они являются исключениями. Некоторые системы поддерживают разделение, но они занимают всего один раздел на диске и используют свою внутреннюю схему разделения в пределах используемого раздела. Такие операционные системы нормально работают с другими системами (включая Linux), которые находятся на том же диске. Но те операционные системы, которые не поддерживают разделы, не могут быть установлены вместе с другими системами на одном диске.
$
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). Они функционируют так же, как и основные разделы, различие состоит в схеме их создания.
иммммммммммммммммммммммммммммммммммммммй п 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 диска.