Глава из книги Сага о FreeBSD
Алексей Федорчук
2008-11-12
Для достижения поставленной цели есть смысл, выбрав заказной вариант установки, на первом этапе ограничиться абсолютно необходимыми для запуска и функционирования системы мероприятиями, а именно:
Первой стадией начального этапа индивидуализированной установки FreeBSD является подготовка диска, то есть создание слайсов, разделов и файловых систем для них. О технике этого дела ранее говорилось достаточно подробно. Поэтому, выбрав диск для разметки (если есть из чего выбирать, конечно) уделим внимание стратегии разметки.
Поскольку на компьютере не предполагается использование иных ОС, казалось бы, можно ограничиться одним слайсом для FreeBSD, разметив внутри него должное количество разделов. Однако возможно, что это будет не лучшим вариантом. Как мы помним из главы о базовых познаниях, максимальное количество разделов в пределах одного слайса не может превышать семи (из которых один задействуется под своппинг). А сколько разделов реально нам может потребоваться?
В прошлой главе мы ограничились довольно простой схемой разметки, почти той, что предлагается по умолчанию. Однако в ряде случаев целесообразно отступить от умолчального аскетизма и выделить в самостоятельные ветки файловой системы целый ряд подкаталогов. Для которых, таким образом, нам потребуется целая серия дополнительных разделов.
Как уже говорилось ранее, первые кандидаты на выделение за пределы корня — это каталоги /tmp, /var, /usr (о каталоге /home или /usr/home мы поговорим особо). Однако это далеко не предел. Так, внутри каталога /usr имеет смысл обособить такие его ветки, как:
Далее, не лишено резона вынести на отдельный раздел само дерево портов — /usr/ports. А внутри него выделить подкаталог /usr/ports/distfiles, предназначенный для хранения скачанных из сети исходников.
Читатель может спросить, а зачем нужна столь дробная разметка диска, если в Linux-десктопах обычно благополучно обходятся двумя-тремя разделами? Резонов к тому несколько, и подробнее они будут рассмотрены в главе про файловую иерархию. Пока же замечу, что это и
Таким образом, мы уже насчитали 10 необходимых (или желательных) разделов (без учёта раздела подкачки). А ведь о разделах для пользовательских данных ещё и разговора не было. Кстати, и начнём его. Конечно, всё, что касается индивидуальных данных, предельно субъективно. Поэтому ограничусь тут изложением своих личных предпочтений — не как пример для подражания, а как точку отсчета для формирования собственных соображений.
С некоторых пор я отказался (и во FreeBSD, и в Linux'е) от вынесения на отдельный раздел каталога /home (или /usr/home) "гуртом". Вместо этого я делю его на несколько ветвей, каждая — на самостоятельном разделе:
Несложный подсчёт показывает, что число разделов, таким образом, возросло до 15, что не вписывается уже и в два слайса (ввиду того, что корневой каталог в системе может быть только один, количество разделов для данных на втором и последующих слайсах сокращается до 5). Поэтому, забегая вперед, отмечу, что столь дробную схему разметки целесообразно использовать только вместе с файловой системой ZFS, которая, снимая ограничения на количество разделов, кроме того, избавляет от точного расчёта потребного для них дискового пространства. В данном же разделе мы ограничимся созданием двух слайсов, которые в сумме могут вместить в себя не более одиннадцати разделов.
Расчет дискового пространства, потребного для традиционных файловых систем (например, UFS2) сам по себе представляет нетривиальную задачу. Объём под одни ветви файлового древа (такие, как /, /usr или /usr/src) может быть оценен достаточно точно (и оставаться практически неизменным). Прочие же общесистемные ветви, зависимости от характера использования системы, могут потребовать под себя очень разные объёмы дискового пространства. К тому же потребности в месте на диске меняются от версии к версии. И вы легко догадываетесь, в какую сторону: во времена FreeBSD 4-й ветки "чистый" корень файлового древа, освобождённый от всех "боковых" ветвей, легко вписывался в 128 Мбайт, ныне же под него по умолчаниям sysinstall отводится 512 Мбайт (и даже в супер-минимальной установке, о которой мы поговорим позднее, из них оказывается занятыми примерно 250 Мбайт).
Поэтому ниже в таблице приведены оценочные объемы разделов под перечисленные выше ветви файловой системы (за исключением ветви /usr/home — с ней я предоставляю читателям разбираться самостоятельно).
Таблица. Дисковые разделы под системные ветви файлового дерева FreeBSD
| №№ пп | Устройство | Каталог | Размер |
| 1 | /dev/ad0s1a | / | 512 Мбайт |
| 2 | /dev/ad0s1d | /tmp | 128 Мбайт |
| 3 | /dev/ad0s1e | /var | 256 Мбайт |
| 4 | /dev/ad0s1f | /usr | 512 Мбайт |
| 5 | /dev/ad0s1g | /usr/obj | 1 Гбайт |
| 6 | /dev/ad0s1h | /usr/src | 512 Мбайт |
| 7 | /dev/ad0s2d | /usr/local | 3 Гбайт |
| 8 | /dev/ad0s2e | /usr/ports | 2 Гбайт |
| 9 | /dev/ad0s2f | /usr/ports/distfiles | 2 Гбайт |
| 10 | /dev/ad0s2g | /usr/home | 64 Мбайт |
| 11 | /dev/ad0s2h | /usr/home/data | ?? |
Ещё раз повторю, что приведённые в таблицы цифры должны рассматриваться как минимальные — если есть возможность, то к разделам под каталоги /usr/local, /usr/ports, /usr/ports/distfiles можно смело накинуть по гигабайту. Благо такая возможность при современных объемах дисков, как правило, имеется. Ну а принципов выделения места под пользовательские данные — три: сколько надо, сколько осталось или сколько не жалко.
Отдельно надо поговорить о двух ветвях файловой иерархии — каталогах /tmp и /obj. При современных объемах оперативной памяти под них иногда целесообразно не выделять самостоятельные дисковые разделы, а монтировать в них так называемую mfs (Memory File System — файловая система в оперативной памяти, аналог tmpfs в Linux'е). Этим достигается три цели:
Для каталога /tmp эти три соображения имеют силу всегда — так что при объеме памяти от 512 Мбайт и более (а меньше нынче найти нелегко) также всегда имеет смысл и монтировать в него mfs (как именно — мы узнаем в соответствующей главе). А вот с каталогом /obj всё гораздо сложнее...
Во-первых, будучи по умолчанию предназначенным для помещения промежуточных продуктов компиляции ядра и "мира", базируясь на mfs, он не может выполнять эту функцию: как мы увидим в соответствующей главе, процесс этот прерывается почти на середине перезагрузкой, во время которой содержимое файловой системы в оперативной памяти исчезает.
Во-вторых, сборка из портов по настоящему "тяжелых" приложений, вроде Openoffice.org, может потребовать просто астрономического объема памяти под временные продукты компиляции.
Ну и в третьих, получаемый при этом выигрыш в быстродействии составляет, по самым оптимистическим оценкам, не более 10%. Так что я предупредил — а дальше решайте сами, нужно оно вам или нет.
Внимательный читатель наверняка обратил внимание, что в приведённом "разблюдовнике" разделов не нашлось места для раздела подкачки. И это не случайно — тут тоже требуется учитывать множество факторов.
Давно прошли счастливые времена, когда можно было, особенно не заморачиваясь, отвести под swap-раздел удвоенный объем оперативной памяти, как это обычно рекомендуется, и забыть об этой проблеме. Однако ныне памяти этой вполне может быть и 2, и 4 Гбайт: следовательно, выполнять данную рекомендацию имеет смысл только для 64-битных вариантов FreeBSD, для убеждения в чём достаточно вернуться к главе о "железе". Это — раз.
Два — при указанных объемах памяти потребности в свопировании её содержимого во время выполнения подавляющего большинства пользовательских задач просто не возникает. Так что обычно без раздела подкачки можно вообще обойтись. Что, кстати, учтено в последних версиях sysinstall. Если раньше отказ от создания swap-раздела вызывал обрыв установки, то нынче просто выдаётся предупреждение, то таковой может произойти, если не хватит оперативной памяти. Так что для очистки совести можно ограничиться неким символическим разделом — на несколько сотен мегабайт.
Однако есть два случая, когда swap придётся задействовать по полной программе. Первый — при монтировании всё-таки mfs в каталог /usr/obj и сборке из портов "тяжёлых" приложений: тогда, во избежание переполнения соответствующей файловой системы, необходимо иметь вдоволь (а лучше — немного больше, чем вдоволь) пространства для подкачки. Второй же случай — это использование файловой системы ZFS, что будет рассмотрено в одном из ближайших разделов.
Исходя из всего, сказанного выше, пользователю не составит большого труда прикинуть примерный размер каждого из двух слайсов, на которые ему целесообразно разбить диск посредством пункта меню заказной установки Partition. Также очевидно, что вслед за этим загрузчик FreeBSD должен быть установлен в MBR — ведь это, как мы молчаливо условились, если не единственная, то — основная система на нашей машине. Ну а дальнейшее — собственно разметка слайсов, — может быть выполнена как вариация на приведённую в таблице тему через меню Label.
Покончив с дискодробительством, обращаемся к пятому пункту нашей программы — Distributions. В прошлой главе мы разобрались с ним очень легко, выбрав один из фиксированных установочных наборов, а именно X-Kern-Developer. Нынче же мы начинаем построение системы по кирпичикам, и потому выбор наш останавливается сначала на пункте Minimal (дабы не забыть о чем-то жизненно важном), а потом — на пункте Custom, для детализации (рис. 9.01).

Рис. 9.01. Выбор индивидуального набора
Раскрыв означенный пункт, мы видим, что для установки у нас отмечены компоненты base, kernels и... более ничего. В случаях, составляющих предмет следующих разделов, этим, как мы увидим, следует и ограничиться. В нынешней же ситуации жмотничать нечего — спокойно отмечаем необходимые нам чекбоксы (рис. 9.02).

Рис. 9.02. Выбор компонентов индивидуального набора
Здесь целесообразно выбрать следующие пункты:
Последний пункт также требует индивидуального выбора — благо, такая возможность предоставляется тут же (рис. 9.03).

Рис. 9.03. Выбор компонентов индивидуального набора
Здесь проще всего, выбрав пункт All, отметить все компоненты, после чего снять галочки с ненужных. Таковыми, на мой взгляд (который я никому не навязываю), являются пункты crypto, games и krb5 — всё остальное так или иначе не будет лишним в последующем, при пересборке "мира".
На этом процесс базовой установки можно считать завершенным: после подтверждения выбора начнется разметка диска, сознание файловых систем и развертывание выбранных компонентов Distrubutions, по завершении чего можно переходить к конфигурированию.
Последнее выполняется точно так-же, как и при типовой установке. Единственное, что я воздержался бы от создания аккаунта обычного пользователя — по ряду причин, которые станут ясны из соответствующей главы, это целесообразно будет сделать позднее. И еще: предполагается, что весь прикладной софт мы будем устанавливать позднее через систему портов. Однако некоторые пакеты имеет смысл всё-таки установить сейчас, на стадии конфигурирования. В их числе — любимые командная оболочка и текстовый редактор, если соответствующие предпочтения уже выработались, во-первых, а соответствующие пакеты имеются на установочном диске, во-вторых.
Кроме того, не лишним будет и браузер для текстового режима — ведь никаких Иксов у нас нет ещё и в помине, а возможность свериться с первоисточниками в сети никогда не помешает, а сразу после перезагрузки может оказаться необходимостью. Выбор тут не богат: на установочном компакт-диске может присутствовать lynx или links. а иногда и то, и другое. Выбирать придётся первый — пакет под именем links представляет собой вторую версию этой программы и собран с поддержкой графики, то есть потянет за собой в качестве зависимостей множество компонентов, установка которых пока преждевременна. Чисто консольная сборка этой программы наличествует в виде пакета links1 — но её на установочном диске может и не быть.
Впрочем, установку необходимого минимума пакетов можно и отложить до времени после рестарта, начав с неё процесс доведения системы до ума, чем мы вскоре и займемся. Но сначала последовательно рассмотрим особенности установки FreeBSD в случаях, если предполагается использование программного RAID'а или файловой системы ZFS.