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

Можно получить нормальную систему Linux на одном разделе. Кстати, такой подход проще, но иногда нужно все же несколько разделов.

Диск имеет смысл поделить на четыре раздела для основных файловых систем (root, /usr, /home и swap).

Во-первых, это может уменьшить время, требуемое, чтобы выполнить проверки файловой системы, потому что эти проверки могут быть выполнены параллельно. (Между прочим, НИКОГДА не выполняйте fsck на смонтированной файловой системе!!! Вы будете сожалеть о том, что случится с ней после такой проверки, но будет уже поздно. Исключительная ситуация: если файловая система смонтирована в режиме только для чтения, тогда безопасно делать такое.) К тому же, проверять несколько разделов проще: если известно о проблеме в разделе /home, я просто размонтирую его, проверю и смонтирую снова (а вот в случае с одним разделом придется грузиться с rescue diskette в однопользовательском режиме).

Во-вторых, определенные разделы можно смонтировать только для чтения, что иногда полезно.

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

Этот небольшой факт может быть большым плюсом. Например, если корневой раздел так разрушен, что Вы не можете загружаться, Вы можете загружаться со спасательного набора дискет, смонтировать корневой раздел и скопировать с него все, что еще копируется, (или восстановить с копии; см. главу 8 о резервировании и восстановлении), на другой раздел, например, /home, снова перезагрузится с emergency boot disk, ввести “mount root=/dev/hda3” (если Ваша временная корневая файловая система находится на третьем разделе hda) и загрузить полностью функциональный Linux. Затем Вы можете выполнить fsck для несмонтированного разрушенного корневого раздела (замечание переводчика: мне известен сисоп, который специально создает такой резервный корневой раздел именно на случай, когда система взорвется).

Я имею личный опыт катастроф с файловыми системами и очень рад тому, что ущерб был минимален, благодаря правильному разделению на разделы.

Наконец, Linux позволяет поставить в другие разделы другие ОС (например, Windows 95/98/NT, BeOS или что хотите), и создать dual- (или triple-, ...) загрузку системы. Обычно, хотят иметь по крайней мере один отдельный раздел для каждой операционной системы. Linux включает приличный менеджер начальной загрузки (LILO на Intel-основанных системах, MILO на Alpha и SILO на Sparc), который позволяет Вам определять, которую операционную систему Вы хотите загружать при включении питания по умолчанию (вероятно, Linux, правильно?).

Вы должны выделить разделы диска согласно Вашим потребностям. В моем опыте на платформах Intel, Альфа и Sparc, для довольно загруженной системы, я нашел, что следующая схема работает вполне нормально.

Дано:

Данный диск X Mb/Gb               (например, 2 Gb)
(Или больше чем один диск с общей емкостью в X Mb/Gb)

Посчитаем:

(swap)   примерно двойная RAM     (например, 64 Mb RAM требует 128 Mb swap)
/ (root) около 10% от доступного  (например, 200 Mb)
/home    около 20% от доступного  (например, 400 Mb)
/usr     все, что осталось        (например, 1272 Mb)

/var     (опционально: см. ниже)
/boot    (опционально: см. ниже)
/archive (опционально: см. ниже)

Конечно, вышеупомянутые количества только приблизительные руководящие принципы. Все зависит от того, как планируется использовать систему.

Ниже описаны разные файловые системы, что, возможно, даст Вам хорошие идеи по поводу того, чему сколько выделить:

  • / (root) используется для хранения временного каталога, образа ядра, загрузчика, важных системных программ и библиотек. Здесь же хранятся протоколы, почта пользователей, задания на печать и временные RPM-файлы. Тип раздела обязательно 83 (Linux native).

  • /usr должен быть самым большым разделом, потому что большинство двоичных файлов, требуемых Linux, также как все локальное программное обеспечение, некоторые протоколы и все исходники будут здесь. К тому же, по умолчанию здесь хранятся web-страницы, Squid-кэш и ресурсы Samba, хотя все это можно переместить куда-нибудь еще. Тип раздела обязательно 83 (Linux native).

  • /home может быть небольшим, если пользователи не имеют shell-доступа. Если пользователи имеют web-страницы, раздел надо сделать побольше. Тип раздела обязательно 83 (Linux native).

  • (swap) Linux обеспечивает работу с виртуальной памятью, для создания большего количества памяти RAM, чем ее реально установлено в системе. Раздел свопа используется с RAM, чтобы выполнить это. Как правило, раздел свопа по крайней мере вдвое превосходит RAM.

    Если Вы имеете больше чем один физический жесткий диск в системе, Вы можете создавать много разделов свопа. Это может улучшить эффективность подкачки, пользуясь преимуществом параллельного дискового доступа. Например, с 256 Mb RAM и с четырьмя дисками, я вероятно создал бы четыре раздела свопа по 128 Mb каждый. Таким образом, получится для 256 Mb RAM 512 Mb свопа (а всего 768 Mb доступной виртуальной памяти, что уже солидно). Тип раздела обязательно 82 (Linux swap).

    Note

    Замечание: Есть общее неправильное представление, что Linux имеет ограничение размера свопа в 128 МБ. Это было истинно в прошлом, но в современных версиях Linux размер зависит от архитектуры (например, Intel системы могут иметь размер свопа до 2 Gb). Подробности можно получить командой ``man mkswap''.

  • /var (опционально). Раздел / (root) может быть разделен и более глубоко. Каталог /var используется для хранения почты, заданий на печать протоколов, обработки блокировки и т.д. Проблема в том, что при поступлении большого количества почты (например), корневой раздел быстро заполнится, что может привести к проблемам (например, система рухнет?), особенно если временный каталог находится тоже на нем. Наличие /var на собственном разделе может помочь избежать таких проблем. Тип раздела обязательно 83 (Linux native).

  • /boot (optional) В некоторых обстоятельства (типа системы, установленной в программной конфигурации RAID) может быть необходимо иметь отдельный раздел, чтобы загрузить Linux. Этот раздел позволит загрузиться и затем загрузить любые драйверы, которые требуются, чтобы читать другие файловые системы. Размер раздела может быть всего пара МБ; я рекомендую приблизительно 10 МБ (что должно дать Вам участок памяти, чтобы сохранить ядро, начальный образ RAMDISK, и, возможно, еще резервное ядро или два). Тип раздела обязательно 83 (Linux native).

  • /archive (optional) Если Вам некуда девать место, может пригодиться каталог для архивов /archive. Его можно использовать для хранения всяких архивов перед их сбросом на стриммер, пердоставления к ним доступа через samba file services, да мало ли для чего еще! Тип раздела можно задать 83 (Linux native), или какой угодно, если раздел должен быть доступен из других систем. Например, 6 (DOS 16-bit >=32M) для доступа из систем Microsoft.

Система точек монтирования позволяет добавлять диски по мере необходимости. Например, если кончилось место, и Вы добавили диск, скажем, sda6, то можно смонтировать его как /usr/local и передать на него все данные из каталога /usr/local. Но система и приложения как работали, так и будут работать: им совершенно все равно, где это /usr/local находится реально.

Вот как созданы разделы у меня на Intel-системе (dual boot, Windows 95 и Linux):

Device    Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1  *         1        1      254  1024096+   6  DOS 16-bit >=32M
/dev/hda2          255      255      782  2128896    5  Extended
/dev/hda5          255      255      331   310432+  83  Linux native
/dev/hda6          332      332      636  1229728+  83  Linux native
/dev/hda7          637      637      749   455584+  83  Linux native
/dev/hda8          750      750      782   133024+  82  Linux swap

Первый раздел, /dev/hda1, файловая система DOS, используется для альтернативной системы (Windows 95). Занимает 1 Gb.

Второй раздел, /dev/hda2, является физическим разделом (“extended”) который охватывает остальное место на диске. Это используется только для размещения оставшихся логических разделов. (может быть до 4 физических разделов на диске; в моем случае я требовал больше чем 4 раздела, следовательно я был должен использовать логическую схему для выделения остальных разделов).

Разделы с третьего по пятый, /dev/hda5, /dev/hda6 и /dev/hda7, отформатированы в файловой системе ext2fs, и использованы как файловые системы для / (root), /usr и /home соответственно.

Наконец, шестой раздел, /dev/hda8, используется под своп.

Другой пример: машина на Alpha с двумя жесткими дисками (sole boot, только Linux):

Device Boot   Begin    Start      End   Blocks   Id  System
/dev/sda1            1        1        1     2046    4  DOS 16-bit <32M
/dev/sda2            2        2      168   346859   83  Linux native
/dev/sda3          169      169      231   130851   82  Linux swap
/dev/sda4          232      232     1009  1615906    5  Extended
/dev/sda5          232      232      398   346828   83  Linux native
/dev/sda6          399      399     1009  1269016   83  Linux native
/dev/sdb1            1        1      509  2114355   83  Linux native
/dev/sdb2          510      510     1019  2118540   83  Linux native

Первый раздел, /dev/sda1, DOS-раздел, используется для хранения MILO boot loader. Платформа Alpha имеет немного другой метод загрузки, чем система Intel, следовательно Linux сохраняет информацию начальной загрузки в разделе FAT. Этот раздел только должен быть как можно меньше, в данном случае 2 Mb.

Второй раздел, /dev/sda2, ext2, использован для раздела / (root).

Третий раздел, /dev/sda3, использован для свопа.

Четвертый раздел, /dev/sda4, является разделом “extended” (см. предыдущий пример).

Пятый и шестой разделы, /dev/sda5 и /dev/sda6, отформатированы в файловой системе ext2 и соответственно использованы для /home и /usr.

Седьмой раздел, /dev/sdb1, тоже ext2fs, использован для /archive.

Восьмой и последний раздел, /dev/sdb2, тоже ext2fs, использован для /archive2.

После выделения разделов надо записать информацию о них на диск. После этого программа установки Red Hat обновит таблицу разделов в памяти и перейдет к следующему шагу процесса установки.