Практикум по дисковой разметке
Как уже говорилось выше, ошибки при дисковой разметке и создании файловых систем исправимы в дальнейшем с большим трудом (или неисправимы вообще без переустановки системы). И потому при начальной установке системы к этому вопросу следует подойти со всей ответственностью.
Для начала определимся - сколько разделов необходимо для установки Linux? Обязательными считаются два - под корневую файловую систему и под своппинг; именно такая схема разметки предлагается многими инсталляторами по умолчанию. Современные дистрибутивы обычно требуют в типовой установке не менее 2-3 Гбайт дискового пространства - и это без учета пакетов, которые, возможно, придется доустанавливать впоследствии. Так что отвести под Linux 5-7 Гбайт при нынешних объемах дисков будет не внапряг - я последнее время, дабы не ломать голову рассчетами, отдаю под это 10 Гбайт. Что же до раздела подкачки - его размер традиционно определяется равным удвоенному объему оперативной памяти и, опять такие во избежание ломки головы, остановимся на этой величине.
Часто можно услышать мнение, что при типичных современных объемах оперативной памяти (512 Мбайт - 1 Гбайт) раздел подкачки не нужен вообще. Резон в этом есть - при указанных объемах памяти своппинга в штатных ситуациях практически не происходит никогда. Однако возможно, что в последующем вам захочется использовать файловую систему в оперативной памяти - tmpfs - и задействовать ее, например, под промежуточные продукты компиляции. А поскольку оценить потребное под них место весьма трудно (OpenOffice.org, например, желает под это дело несколько гигабайт), возникает риск переполнения файловой системы. Так что повторюсь еще раз: не стоит жмотничать, и лучше отдать под раздел подкачки один-другой гигабайт, нежели потом сожалеть о его отсутствии.
Вернемся, однако, к корню файловой иерархии. Широким жестом отведя под него 5, 7 или даже 10 Гбайт, мы не учли одного: собственно пользовательских данных (а не ради них ли все и затевалось?). А потому, дабы отделить их от системы, под каталог /home целесообразно выделить собственный раздел. Какой? Вам виднее, сколько данных у вас имеется (и предвидится). Обычно тут руководствуются одним из принципов - сколько нужно, сколько есть или сколько не жалко.
Итак, приходим к выводу о необходимости трех разделов - под корень, под своппинг и под каталог /home. Однако это не предел дискодробительства: в ряде случаев на отдельные разделы целесообразно вынести такие ветви файлового древа, как /usr, /var и /tmp (причины к тому подробно описаны в книжке Введение в POSIX'ивизм - "бумажный" ее вариант в скором времени выйдет в издательстве БХВ-Петербург под названием "Доступный Unix" - ). В этом случае раздел под корневой каталог можно сделать совсем маленьким (256-512 Мбайт), под /usr и /var отвести гигабайт 5 и 3, соответственно, а под /tmp 512-ти мегабайт хватит за глаза - в расчете на то, что в дальнейшем в него можно будет подмонтировать файловую систему в оперативной памяти - tmpfs (в известных мне инсталляторах на стадии установки штатно такой возможности не предусмотрено). Лично мне такая схема представляется почти оптимальной для пользовательского десктопа.
Наконец, при использовании в качестве загрузчика GRUB его разработчиками настоятельно рекомендуется вынести на самостоятельный раздел каталог /boot - размером 30-50 Мбайт. Впрочем, это имеет смысл только в том случае, если на машине планируется использовать несколько (более двух - Linux и Windows) операционных систем.
В дистрибутивах Source Based, использующих портообразные системы, часто практикуется еще более дробная разметка диска. В частности, в них имеет смысл выносить на отдельные разделы не только само дерево портов, но и каталог для скачиваемых из Сети исходников. В Gentoo это будут /usr/portage и /usr/portage/distfiles, в Archlinux - /var/abs и /var/cache/pacman/src, соответственно; в общем, это следует уточнять по документации для конкретного дистрибутива. Как и то, сколько места необходимо отвести на дерево портов - раздел под каталог с исходниками если уж создавать, то лучше создать с очень хорошим запасом.
Какие разделы создавать под Linux - первичные или логические? Если ограничиться минимально необходимыми - /, swap, /home, - значения не имеет: три раздела можно сделать и первичными (и еще одна Primary Partition останется про запас - например, для Windows, о чем речь пойдет чуть дальше).
Если же прибегнуть к более дробной схеме разметки - неизбежным становится использование логических разделов в Extended Partition. Причем никаких ограничений тут давно уже - на логических разделах могут лежать и корневая файловая система, и swap, и даже /boot (не говоря уже о всех прочих). Правда, /boot разработчики GRUB'а рекомендуют все же помещать на первичный раздел - но, повторяю, это имеет смысл только при множестве установленных на данной машине операционок. Я же, со своей стороны, настоятельно советую задействовать именно первичный раздел под каталог /home - пусть и слабая, но дополнительная гарантия сохранности пользовательских данных. А поскольку, как завещал нам Козьма Прутков, шутки с данными глупы и неприличны, - ни одной страховой возможностью в их отношении пренебрегать не след, сколь бы призрачной она ни казалась...
Файловые системы... Тут есть немало поводов поломать голову. Если. конечно, не следовать умолчаниям инсталлятора. А он, скорее всего, предложит нынче по умолчанию ext3fs для всех ветвей файлового древа. С этим можно смело соглашаться - это будет вполне разумным (хотя и не идеальным) выбором. Однако при схеме разметки, декларированной выше как (почти) оптимальная, я бы оставил ext3fs только для корня файловой иерархии. А на разделах для прочих ее ветвей - /usr, /var, /tmp, /home, - создал бы ReiserFS. Хотя в случае с /home - вопрос обсуждаемый: эта ветвь файлового древа может явить собой пример той самой очень большой файловой системы с очень большими файлами. И тогда для нее целесообразной может оказаться XFS...
В предыдущем разделе вскользь упоминалось, что инсталляторы подчас предлагают, кроме выбора файловой системы и точки ее монтирования, задать также некие опции монтирования. Подавляющее большинство их (а имя им - легион) служат весьма специальным целям, обычному пользователю не интересным. Однако минимум одна опция окажется для него полезной, а именно - noatime. Она запрещает обновлять время последнего доступа к файлам (которое само по себе на десктопе мало для чего нужно), способствуя некоторому повышению быстродействия файловых операций. А для файловой системы ReiserFS, в сочетании со специфичной для нее опцией notail, этот выигрыш становится видимым невооруженным (тестами) взглядом).
Подведу итоги своих долгих рассуждений, сведя их в таблицу того, как представляется мне схема разбиения диска для среднестатистического десктопа (табл. 1).
Таблица 1. Предложение по дисковой разметке и сопутствующим материям.
Каталог | Размер раздела | Тип раздела | Файловая система | Опции монтирования |
Корень (/) | 256-512 Мбайт | Первичный, hda1 | Ext3fs | noatime |
Swap | RAM*2 | Логический, hda5 | - | - |
/tmp | 512 Мбайт | Логический, hda6 | ReiserFS | noatime, notail |
/var | 3 Гбайт | Логический, hda7 | ReiserFS | noatime, notail |
/usr | 5 Гбайт | Логический, hda8 | ReiserFS | noatime, notail |
/home | Сколько нужно | Первичный, hda3 | ReiserFS | noatime, notail |