О блоге

Все новые материалы размещаются на Блогосайте alv.me. Старые - в процессе переноса.

26.07.2008

FreeBSD: быстрое развертывание

2004, update 2005

2008-07-26. За годы, прошедшие с написания первой версии этой заметки, в установке и начальной настройке FreeBSD практически ничего не изменилось. Возможные, но нереализованные варианты будут описаны в заметках последующих.

Инсталляция FreeBSD описывалась многократно. Во-первых, этому вопросу уделено большое внимание во FreeBSD Handbook. Во-вторых, существует иллюстрированное руководство по установке FreeBSD. И оба эти документа доступны в русских переводах (см. каталог BSD-ресурсов). В третьих, немало пользователей этой системы поделились своими впечатлениями на сей предмет. Да и ваш покорный слуга отметился в этой теме - следует ли возвращаться к ней опять?

Однако система эта набирает популярность - и не столько для серверных применений (тут как раз доля ее снижается), но и в первую очередь как настольная платформа. И к ней обращаются многочисленные неофиты-POSIX'ивисты, для многих из которых она оказывается первой POSIX-системой в жизни. В итоге я решил остановиться на одном моменте установки FreeBSD - быстром развертывании для совсем начинающего пользователя BSD-систем. Потому что даже пользователю Linux "со стажем" многое здесь по первости покажется непривычным - так что же говорить о вчерашнем "подоконнике"?

Содержание

Что нужно иметь

Очевидно, что для установки FreeBSD на некий компьютер нужно как минимум иметь компьютер. Какой - не очень существенно. С точки зрения ресурсов - подойдет любая машина, не относящаяся к категории антиквариата. Единственно, что для комфортной работы хорошо бы не очень мало памяти - но с этим нынче проблем как будто бы не бывает, обычных мегабайт 256 должно хватить. Конечно, если памяти очень много (например, 1 Гбайт) - можно получить некоторые дополнительные удобства, но это уже из области роскошного.

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

Разумеется, дисковое пространство, отдаваемое на откуп FreeBSD, не должно быть разбитым на разделы (или эти разделы можно было бы безболезненно удалить). И, наконец, нужно иметь минимум одну свободную запись в MBR - чтобы свободное пространство можно было бы превратить именно в первичный раздел.

Дисковые контроллеры - практически любые IDE (вряд ли вопрос со SCSI нынче актуален для индивидуального пользователя). Не возбраняются диски SATA, в том числе и на аппаратных ATA RAID.

Требования в видеосистеме - обычные для Иксов в любой операционке, поверх которой Иксы способны работать. То есть подойдет любая стандартная видеокарта с любым разумным по нынешним временам объемом памяти. Монитор желательно побольше - комфортная работа в Иксах начинается с разрешения 1024x768, и чем больше его можно сделать - тем лучше. К слову - и в консоли FreeBSD нынче доступны графические (через frame buffer) режимы с высокими разрешениями, а не только стандартные 80x25 символов, так что и здесь большой монитор лишним не будет.

Об акустике стоит сказать пару слов. Со станадартными дешевыми PCI-картами никаких проблем не предвидится. Как и с "размазанными" аудиокодеками типа AC'97. А вот про более "продвинутые" устройства - вариации на тему SB Live! и Audigy, - сказать трудно: я слышал, что с ними дело обстоит не лучшим образом...

Требования к прочей периферии - стандартны для Unix-подобных систем, То есть: следует всеми правдами и неправдами избегать устройств, несущих в имени своем сакраментальное слово win - win-модемов, win-принтеров и прочего. Говорят, что кое-что из таких устройств заработать может - но я бы за это не дал и ломаного гроша.

Кроме железа, для установки любой ОС нужно иметь еще и ее дистрибутив. И вот тут возможны варианты.

В каждый момент времени FreeBSD существует в двух ипостасях - стабильной (т.н. STABLE) и текущей (CURRENT) ветях. Первая на сегодняшний день представлена версиями 7-й ветки. Однако вследствие молодого возраста релиза она может быть не вполне надежной при промышленном использовании, в частности, на серверах (где активно употребляются не только 5-я, но даже и 4-я ветви). Однако противопоказаний для применения 7-й ветки в настольных условиях нет, а преимуществ она дает немало (и именно для конечного пользователя). Что же для текущей ветки - она может содержать новые полезные особенности, но надежность ее никем не гарантируется, она предназначена для экспериментаторов.

Ветвь FreeBSD - это нечто вроде версии ядра Linux (например, различия между 4-й и 5/6-й ветвями того же порядка, что между Linux 2.4.X и 2.6.X). Внутри же ветви FreeBSD существуют еще и версии - 5.4, например, или 6.0. Версии в пределах ветви кардинальных отличий не имеют, их совершенствование сводится к исправлению ошибок.

В отличие от Linux, где обычно можно обновить ядро, почти не затрагивая пользовательского окружения, во FreeBSD смена версии (и тем более ветви) неизбежно влечет не только модификацию ядра, но и обновление всей базовой системы - т.н. юзерленда (userland - части базовой системы, запускающиеся, в отличие от ядра, в пользовательском пространстве памяти).

Вообще говоря, понятие ветви (и тем более номера версии) для FreeBSD - достаточно условное: в любой момент времени ее можно поднятуть до актуального состояния рядом несложных и хорошо документированных действий (правда, несложные они только при наличии сети).

Итак, останавливаемся на наиболее актуальном представителе текущей ветки (на помент сочинения этих строк - 6.0) и озаботимся получением ее дистрибутива. Сделать это можно тремя способами: а) купить, б) скачать, в) установить по Сети. В соответствие с наиболее подходящим вариантом установки мы и выберем комплектацию.

В полном виде дистрибутив FreeBSD включает в настоящее время 3 диска - 1-й, инсталляционный (6.0-RELEASE-i386-disc1.iso, 550 Мбайт), 2-й, содержащий дополнительные пакеты (6.0-RELEASE-i386-disc2.iso, 650 Мбайт), и, наконец, совсем маленький загрузочный диск (6.0-RELEASE-i386-bootonly.iso, чуть больше 40 Мбайт). Все они свободно доступны на серверах проекта) и его многочисленных зеркалах). Разумеется, для установки на машину с AMD64 можно выбрать версию под соответствующую архитектуру), хотя и стандартный вариант для i386 будет на ней прекрасно работать (более того, существуют сомнения в надежности 64-битной версии, хотя мой опыт их не подтверждает).

В продаже, через онлайновые или книжные магазины, распространяются либо набор из двух первых дисков, либо - только первый, инсталляционный, причем обычно только для платформы i386. Хотя, например, в онлайновом магазине Линуксцентра) можно найти и наборы на 2 DVD, включающие полную коллекцию бинарных пакетов или исходников для системы портов, а также CD с периодическими обновлениями последних. Что подойдет для нас?

Ответ на этот вопрос зависит от двух факторов - характера подключения к Интернету и времени, которое мы готовы затратить на установку системы. Если канал хороший (быстрый, устойчивый и, что немаловажно, дешевый - в идеале бесплатный), можно ограничиться скачиванием маленького bootonly-диска, в сущности, выполняющего роль стартовой дискеты. В этом случае вся установка системы будет осуществляться по Сети (http- или ftp-протоколу, в том числе - и в пассивном режиме, допускающем работу через proxy). А главным методом установки приложений будет сборка их из портов.

Первый установочный диск позволяет выполнить установку системы (включая Иксы) целиком с локального накопителя. Однако на нем обнаруживается лишь ограниченный (и достаточно случайный) набор пользовательских приложений - для их пополнения придется рассчитывать только на сборку из портов. И, следовательно, этот вариант также приемлем только при более-менее нормальном канале. Правда, в отличие от чисто сетевой установки, канал этот не обязательно должен быть на той машине, на которую FreeBSD устанавливается.

Говоря о выборе дистрибутива и метода установки, я не случайно упомянул о факторе времени. Дело в том, что сборка Иксов на современной машине средней мощности займет не один час. А если есть потребность в таких тяжелых приложениях, как KDE или OpenOffice, счет вполне может пойти и на сутки.

Так что при стесненности во времени остается один вариант - полный установочный комплект из двух CD, В этом случае, кроме базового комплекта (т.н. Distributions), в вашем распоряжении будут также прекjмпилированные Иксы и набор бинарных пакетов, включая KDE, Gimp, браузеры и т.д. В результате система разворачивается за считанные минуты, а необходимости в подключении к Сети на этапе установки не возникает вообще.

Конечно, набор приложений на полном установочном комплекте а) неизбежно ограничен, и б) подобран весьма усредненным образом. И потому в итоге без выхода в Интернет все равно не обойтись - хотя, повторяю, не обязательно с локальной машины (опыт показывает, что все необходимое можно качать на службе и перетаскивать домой). Однако это может быть уже задачей следующего этапа - тонкой настройки и индивидуальной комплектации системы.

А для начала вполне достаточно иметь два инсталляционных диска - с этим набором можно приступать к установке.

Что нужно знать

Хотя нет - до начала установки очень не плохо не только кое-что иметь (согласно приведенному выше списку), но и кое-что знать.

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

В абсолютный минимум предварительных знаний входят а) представление о дисковых разделах вообще, б) понимание специфики BSD-разметки дисков, и в) знание номенклатуры дисков и их разделов конкретно во FreeBSD. Ибо номенклатура эта весьма специфична, отличаясь от принятой не только в DOS/Windows/NT, но и в Linux. Так что ограничимся именно минимальными сведениями на сей предмет.

Все, кому приходилось устанавливать какую-либо ОС собственноручно, знают, что диск (или диски) принято делить на разделы. И разделов этих на стандартном PC'шном IDE-диске (о SCSI у нас речи не будет) может быть максимум 4-е штуки - информация о большем количестве не помещается в главной загрузочной записи (MBR - Master Boot Record). Эти разделы принято называть первичными (Primary Partitions), или физическими. А во FreeBSD для них принят термин "слайс" (slice - в данном контексте можно перевести как отрезок).

Представление о первичных дисковых разделах определяется архитектурой PC (вернее, исторически унаследованным от первых IBM-совместимых компьютеров устройством их BIOS). А вот дальнейшее их дробление уже определяется операционной системой, которая предполагается для установки на эти разделы. И тут уже вступают в силу ОС-специцичные стили разметки разделов, предопределенные присвоенными им идентификаторами типа файловой системы. Хотя, забегая вперед, замечу, что жесткой корреляции между идентифкатором типа файловой системы и ОС, устанавливаемой на данный раздел, нет. Но пока это и не существенно.

Пользователи как DOS/Windows/NT, так и Linux практически сталиваются только с одним стилем разметки, который обычно называется DOS-стилем. Он основан на том, что один из первичных разделов объявляется разделом расширенным (Extended Partition) - то есть ему присваивается соответствующий (5-й) идентификатор. Помеченный таким образом раздел выступает в качестве контейнера, который может быть поделен далее на логические диски по цепочечному принципу (или принципу матрешки). То есть внутри Extended-раздела выделяется две области, одна из которых объявляется логическим диском, пригодным для хранения данных, а другая определяется как расширенный раздел следующего уровня вложенности. Который, в свою очередь, также может содержать еще один логический диск и расширенный раздел, и так далее. Впрочем, к BSD-разметке, о которой нынче идет речь, это отношения не имеет:-).

Дисковый раздел, отведенный под BSD-систему, то есть слайс FreeBSD, также может быть поделен на логические разделы, которые в терминологии этой ОС именуются партициями (BSD partitions). Так на будуещее и договоримся называть их партициями - во-первых, чтобы помнить, что они соответствуют скорее логическим разделам в понимании DOS, во-вторых для отличия от последних. Да и принцип деления слайса тут другой - он нарезается как бы линейно на серию разделов. Забегая вперед, скажу, что максимальное число таких разделов - 7 (хотя реально это количество может быть достигнуто только на одном слайсе одного физического диска данной машины).

Далее, в отличие от DOS-стиля разметки, логические партиции могут быть созданы внутри каждого из 4-х теоретеически возможных BSD-слайсов - Extended-раздел, как известно, может присутствовать на физическом диске в единственном экземпляре (хотя причины этого остаются покрыты мраком неизвестности). Правда никто к этому не понуждает - как, впрочем, и к созданию максимально возможного количества партиций.

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

Как известно, все, что имеется в POSIX-системах, суть файлы. Не исключение и FreeBSD - диски, дисковые разделы (слайсы) и партиции представляют собой специальные файлы - файлы устройств, расположенные в каталоге /dev.

Номенклатура файлов устройств дисков, слайсов и партиций во FreeBSD подчиняется строгим и, в отличие от Linux, однозначным правилам. Файлы, соответствующие дискам с интерфесом ATA (IDE) именуются здесь ad#, где ad, как можно догадаться, - аббревиатура от ATA Disk, а # - номер дискового устройства в машине, начиная с 0 (см. табл. 1).

Таблица 1. Номенклатура дисковых накопителей во FreeBSD

Файл IDE-канал M/S
ad0 1-й Master
ad1 1-й Slave
ad2 2-й Master
ad3 2-й Slave

Во FreeBSD по умолчанию принята так называемая статичная нумерация дисковых накопителей. То есть файл ad3 всегда будет соответствовать слейву на втором IDE-канале, даже если этот диск является единственным в системе.

Номенклатура дисков на разъемах или дополнительного IDE-контроллера строится по тому же принципу: файл ad4 будет соответствовать мастер-диску на первом дополнительном IDE-канале, ad5 - слейву на нем же, и так далее. Опять же, в отличие от Linux, то же самое верно и для дисков на разъемах SATA: в соответствие со статической нумерацией файлов устройств, они будут получать имя вида ad[следующий свободный номер].

Некоторое осложнение в эту стройную систему вносят диски, подсоединенные к контроллерам ATA (в том числе и SATA) RAID. Так вот, они существуют как бы в двух ипостасях. С одной стороны, им соответствуют обычные файлы вида ad#, с другой - файлы RAID-устройств, именуемые - ar0, ar1 и т.д. Впрочем, больших неудобств это не доставляет (хотя и требует некоторой внимательности при разбиении на стадии установки).

Накопители ATAPI CD-ROM, CD-R/RW и CD/DVD не подчиняются правилам нумерации ATA-дисков. Имена соответствующих им файлов всегда будут acd0 (от ATAPI CD, нужно полагать) и, если таковых устройств более одного, acd1 (а больше двух их, скорее всего, и не будет:-)).

Если диск был разбит на слайсы, каждому из них ставится в соответствие собственный файл устройства. Обозначаются они так: ad#s1, ad#s2, ad#s3, ad#s4. Здесь # - это все тот же номер дискового устройства, s символизирует, что мы имеем дело именно со слайсом (как вскользь было замечено, диск не обязан быть поделенным на слайсы), а цифра - порядковый номер оного (обращаю внимание, что слайсы, в отличие от дисков, нумеруются начиная с единицы).

Файлы BSD-разделов, на которые делится слайс, маркируются буквами латинского алфавита. Всего в таблице BSD-разметки под партиции отведено 8 записей, и соответственно буквы эти будут - от a до h, например: ad0s1a, ad0s1b, и так далее. Причем некоторые литеры рарезервированы за разделами определенного назначения.

Так, файл с именем ad0s1c, не соответствует никакой партиции вообще, а описывает весь слайс целиком - своего рода аналог Extended-раздела при DOS-стиле разметки (в BSD-таблице разделов эта партиция помечена как неиспользуемая - unused). Партиция, которой соответствует файл ad0s1a, предназначена исключительно для корневой файловой системы. Назначение же партции, файл которой именуется ad0s1b, - служить разделом подкачки (областью своппинга). Прочие партиции, файлы которых помечены литерами от d до h, могут нести отдельные ветви файловой системы (см. табл. 2).

Таблица 2. Схема BSD-разделов и их назначение

Файл Назначение
ad0s1a Корневая файловая система
ad0s1b Раздел подкачки
ad0s1c Не используется
ad0s1(d-h) Ветви файловой системы (/usr, /tmp, /var, /home)

Остается сказать несколько слов о номенклатуре SCSI-накопителей. Мало вероятно, что вы в домашних условиях являетесь счастливым обладателем дисков с этим интерфейсом. Однако во FreeBSD (как, впрочем, и в Linux), в качестве SCSI-винчестеров предстают весьма разные устройства хранения данных. Понять этого невозможно, поэтому просто запомните, что ими будут Zip-накопители на параллельном порту, флэшки с USB-разъемом (а также любые другие USB-драйвы) и даже цифровые камеры (конечно, не сами камеры, а встроенные в них носители, которые в большинстве случаев являют собой те же флэшки). Так что знание соответствующей терминологии нам понадобится непременно.

Так вот, сами по себе SCSI-диски (точнее, конечно, файлы соответствующих им устройств) во FreeBSD именуются так: da0, da1 и так далее. Почему? Я предполагаю, что это - аббревиатура от Direct Acsess, то есть устройства прямого доступа. Соответственно, файлы слайсов на них будут выглядеть как da0s1, da0s2 и далее, а партиции будут маркироваться теми же литерами, что и ранее - da0s1(a-h), и с теми же предопределенными значениями. Впрочем, на партиции флэшки и камерные носители вряд ли кто разбивает. Да и первичные разделы на них имеют место быть не всегда - часто файловые системы на них создаются непосредственно на т.н. raw-устройстве - в этом случае к ним нужно обращаться как к da#

Файлы CD-приводов со SCSI-интерфесом также именуются иначе, чем их ATAPI-аналоги. Имя им будет - cd0 или cd1 (вероятно, наследие тех времен, когда CD были только SCSI'евыми). Наличие их в современной машине еще менее вероятно, чем SCSI-винчестеров. Однако в ряде случаев в качестве оных целесообразно представить обычные CD-R/RW с ATAPI-интерфейсом - этого может потребовать пакет записи cdrtools.

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

Пардон - последний штрих: в процессе, последующем за нажатием кнопки Reset, хорошо бы зайти в BIOS и выставить системное время на UTC (оно же - время по Гринвичу). Это, конечно, не обязательно, но, как будет показано далее, весьма не вредно.

Начало установки

Итак, предположим для определенности, что мы располагаем полным установочным набором, с 1-го диска из которого и перезагружаем систему. Сначала перед нашим взором предстанет черный экран с изображением черта с вилами в правой части и меню - в левой. Если предполагается установка системы, выбирать в меню ничего не нужно - достаточно нажать Enter. Или - вообще ничего не делать, через 10 секунд произойдет загрузка ОС и запуск установочной программы - sysinstall. В результате чего мы увидим серую псевдографическую панель главного меню этой программы (рис. 1).

Рис. 1. Главное меню программы sysinstall

Система меню sysinstall может показаться несколько необычной для пользователя, привыкшего к установщикам таких дистрибутивов Linux, как Red Hat или Mandrake (хотя и не вызовет недоумения у любителя, скажем, Slackware). Поэтому первое, что надлежит сделать - это отправиться в пункт Usage и внимательно прочитать, как им следует пользоваться. Правда, написано там все по аглицки, но более чем доходчиво.

Как я неоднократно говорил ранее, sysinstall - не только инсталлятор, но и универсальный конфигуратор, который может быть запущен и позднее, после установки. В сущности, это - интегрирующая оболочка (front-end) для множества специализированных утилит установки и настройки - от программ разбиения диска до текстового редактора, - которые могут использоваться и автономно (и со временем мы узнаем, как).

Однако нынче нас интересует именно интегрированно-установочные качества sysinstall. А они сгруппированы в трех пунктах главного меню - Standard, Express и Custom. Поскольку в перспективе мы рассчитываем на получение идеально индивидуализированной установки, нас будет интересовать лишь третий из них (честно говоря, ни к стандартной, ни к быстрой установке я не прибегал ни разу).

Заказная установка

По выборе соответствующего пункта... А даже те, кто испытывает, подобно мне, идиосинкразию к чтению на американском языке, легко догадаются, что выбор этот осуществляется стрелками перемещения курсора - Down и Up с последующим нажатием клавиши Enter.

...Так вот, по выборе пункта Custom мы попадаем в подменю заказной установки (рис. 2).

Рис. 2. Подменю заказной установки

Легко догадаться, что пункт первый, Exit, означает выход из подменю с возвратом на более высокий уровень - с этим пунктом мы будем в дальнейшем сталкиваться постоянно. Значения же остальных пунктов - следующие:

  • Options - просмотр и, при необходимости, установка опций инсталляции;
  • Partition - выделение дискового пространства под FreeBSD, сиречь создание BSD-слайса (или слайсов);
  • Label - создание разметки дисковой разметки в BSD-стиле, то есть - партиций, внутри слайса;
  • Distributions - выбор для установки компонентов базового набора;
  • Media - смена источника установки;
  • Commit - подтверждение произведенного выбора.

Каждый из этих пунктов заслуживает подробного рассмотрения, чем мы сейчас и займемся.

Просмотр и установка опций

Выбрав пункт Options, мы опять попадаем в черный экран, испещренный списком опций и их значений (рис. 3). Смысл некоторых - интуитивно понятен, другие - не существенны для настольного пользователя, но некоторые при опредленных условиях могут быть подкорректированы. Вот на них-то мы и задержим свое внимание. Отметив, однако, что в предложенном списке нет ничего, нуждающегося в непременном изменении. И что выбор опции, изменению подлежащей, осуществляется стрелками Down и Up с последующим нажатием клавиши Spacebar (не Enter) и ручным вводом в появившемся поле (или, реже, выбором из предложенных вариантов).

Рис. 3. Просмотр опций установки

Интуитивно ясно, что первые семь пунктов предложенного списка (от всего, что относится к сетевой файловой системе - NFS, - до Yes to All) принципиального значения для настольного пользователя не имеют. Пункт DHCP может помочь при наличии постоянного подключения к Сети, а пункт IPv6 (поддержка IP-протокола следующего поколения) на сегодняшний день актуальности еще не приобрел (за единственным исключением, до которого речь дойдет в одном из последующих разделов). Так что все предложенные по умолчанию значения здесь можно спокойно сохранить.

Значение пункта Skip PCCARD - пропуск определения карт PCMCIA, - на настольной машине, если не лениво, можно заменить на YES: я в своей жизни видел один десктоп с PCMCIA-разъемами. А пользовательское имя для анонимного ftp-доступа (FTP username) трогать вообще не обязательно (на сервера проекта FreeBSD, за редким исключением, пустят и так, а на прочих серверах могут быть свои требования по сему поводу).

Большего внимания заслуживает пункт Editor. В нем определяется тот текстовый редактор, который по умолчанию вызывается для модификации системных файлов (с одним таким случаем мы столкнемся уже при установке системы). В исходном варианте здесь прописан некий редактор ee - простой в освоении и использовании, но веьсма бедный функционально. Хотя функциональности его и хватает для редактирования конфигов - он не кажется мне самым удобным инструментом для этой цели. К тому же, не смотря на неперегруженность, мягко говоря, возможностями, он производит впечатление удивительно задумчивого:-). Так что, возможно, его стоит заменить вашим любимым редактором (для меня таковым выступает joe). Нужно будет только не забыть установить его из пакетов на стадии конфигурирования. А главное - предварительно убедиться, что он представлен в пакетах текущей версии дистрибутива.

Пункты Tape Blocksize и Extract Detail оставляем без изменений. Первый - как неактуальный (у кого нынче на дому имеется стриммер?), второй - как удовлетворяющий (он предписывает выдавать информацию о ходе установки).

Пункт Install Root, значение которого - /, то есть крневой каталог, также остается без изменений: куда же еще устанавливать свежую FreeBSD, как не в корень файловой системы? Хотя в дальнейшем, при желании поэкспериментировать с новыми ее версиями, возможно, захочется ставить их в chroot-окружение - но это совсем-совсем другая история...

Пункты Browser package и Browser Exec определяют браузер, используемый по умолчанию. Таковым штатно выступает links (соответственно исполняемый фал его - /usr/local/bin/links: в штатный комплект Distributions он не входит, а все программы, устанавливаемые из портов или пакетов, попадают в каталог /usr/local/). Менять его нецелесообразно, так как второй распространенный браузер консольного режима - lynx, - значительно уступает ему в функциональности, а любой браузер режима графического, очевидно, требует установленных и настроенных Иксов, чего сразу после установки может и не быть.

Следующий пункт - Media Type, как легко видеть, по умолчанию не определенный, - предполагает установку источника инсталляции (и, добавлю, последующего upgrade). На данном этапе (и при выбранном методе установки) что-либо изменять в нем нет необходимости. Другое дело - если бы у нас предполагалась целиком сетевая установка: в этом случае мы, нажав Spacebar, перешли бы в меню следующего уровня вложенности (рис. 4), выбрали бы там один из пунктов в диапазоне 2-4 (FTP, FTP Passive или HTTP), нечувствительно настроив по ходу дела сетевое соединение (в т.ч. и модемное). Однако к этому вопросу мы еще вернемся.

Рис. 4. Выбор источника инсталляции

Аналогично и с Media Timeout - он имеет смысл только при онлайновом источнике инсталляции, так что пока оставляем его в покое.

Пункт Package Temp, определяющий каталог для промежуточных продуктов сборки пакетов (по умолчанию - /var/tmp), также пока не трогаем - у нас еще будет немало поводов вернуться к этому вопросу.

Пункт Newfs Args, конечно, очень важен: им устанавливаются умолчальные параметры новосоздаваемых файловых систем (такие, как размер блока и фрагмента). Однако и на нем не задерживаемся. Ибо осмысленное изменение принятых по умолчанию параметров требует более глубокого понимания устройства файловой системы FreeBSD, уже сложившейся (вот здесь, в ... голове) схемы разбиения дисков и знание того, какие параметры буду оптимальны для файловых систем разного предназначения. Так что этот вопрос мы рассмотрим подробно через пару-тройку глав. А пока сохраним умолчальные значения для блока и фрагмента (-b 16384 -f 2048) - при современных больших дисках они в большинстве случаев разумны.

Последних трех пунктов также не будем касаться, ибо практического значения на данном этапе они не имеют.

В заключение этого параграфа подчеркну, что ни одно из изменений опций не носит необратимого характера - все определяемые ими параметры могут быть переопределены в дальнейшем. За исключением, пожалуй, умолчального редактора: изменить его здесь мне не удавалось никогда. Хотя эта проблема решается иным методом - определением переменной EDITOR в профильном файле пользователя или его классе. Что, впрочем, к установке системы отношения уже не имеет.

Создание слайсов, партиций и файловых систем

Установка любой операционки включает в себя как непременный этап подготовку ее носителя - то есть отведение дискового раздела (разделов) и и его разметку соответствующим образом. Именно этим мы и займемся в настоящем параграфе.

Подготовка дискового пространства в sysinstall разбивается на две стадии, соответствующие пунктам меню Partition (собственно отведение пространства) и Label (его разметка). На самом деле стадий этих три; однако последняя - создание файловых систем, - в меню sysinstall совмещена со второй.

Именно в процессе подготовки диска отчетливо выступает front-end'ная сущность sysinstall. Поскольку на самом деле все эти действия выполняются специальными утилитами - fdisk (разбиение на слайсы), bsdlabel (разметка партиций) и newfs (создание файловых систем или, в терминах DOS/Windows, форматирование). Каждая из этих утилит может быть запущена непосредственно, и со временем мы посмотрим, как это делается.

Ручная подготовка диска обеспечивает существенно большую гибкость на каждой стадии этого процесса. Однако выполнение его посредством sysinstall существенно проще, и потому более подходит в контексте быстрого развертывания системы.

Итак, выбираем пункт меню Partition, после чего нам предлагается панель выбора диска, отдаваемого на растерзание (рис. 5).

Рис. 5. Выбор диска для разбиения на слайсы

Разумеется, если диск в машине один, выбирать особо не из чего. Если более одного - все их можно последовательно разметить для использования во FreeBSD (если не жалко, конечно). Мы же пока ограничимся одним: фиксируем на нем курсор и осуществляем выбор клавишей Spacebar (хотя в данном случае подойдет и Enter).

Опять получаем черный экран, на котором выведена информация некоторая информация о диске и предложена подсказка по дальнейшим действиям (рис. 6). Прежде чем описывать которые, я должен сделать некторое предупреждение.

Рис. 6. Создание слайсов

Все иллюстрации в этом разделе сделаны для sysinstall, запущенной из уже инсталлированной FreeBSD. Что в некоторых случаях (и подготовка дисков - как раз один из них) отличается от нее же, автоматически загружаемой при старте с установочного CD.

Для начала нам сообщают имя файла дискового устройства целиком:

Disk name:      da0

Пример относится к флэш-драйву, который, как описано было в прошлом разделе, метафорически обозначается как SCSI-винчестер. Очевидно, что в случае обычного IDE-диска мы имели бы здесь ad#, а для диска, подсоединенного к контроллеру ATA RAID - ar#.

Вторая строка описывает т.н. "геометрию" диска:

DISK Geometry: 124 cyls/64 heads/32 sectors = 253952 sectors (124MB)

Почему слово "геометрия" заключено в кавычки - интуитивно это ясно: откуда у твердотельного устройства, каковым является флэшка, цилиндры или головки. Однако и в случае обычного диска это слово должно пониматься аллегорически (или, если угодно, метафорически). По причинам, останавливаться на которых здесь неуместно - существенно только, что по умолчанию объем диска выводится именно в секторах, равных 512 байтам (что равно физическому блоку низкоуровневой разметки).

Что мы и видим в нижеследующей таблице. В данный момент она описывает нам именно диск в целом - ведь ни на какие разделы он не разбит. И потому видим в ней мы следующее:

Offset Size(ST) End Name PType Desc Subtype Flags

0 254787 254786 - 12 unused 0

Где Offset - смещение от начала диска (очевидно, что для чистого диска оно равно 0), Size(ST) - размер в секторах, End - последний сектор (в данном случае - всего диска), Name - имя файла устройства, соответствующего слайсу (поскольку таковых пока не имеется, видим прочерк), PType - тип раздела, пока не используемый - unused, что и отражено в поле Desc, и, Subtype - идентификатор типа раздела (в дальнейшем будет - 165 в десятичной нотации, соответствующий FreeBSD), и, наконец, Flags - т.н. флаг активности, отмечающий, является ли раздел загрузочным (забегая вперед, отмечу, что для FreeBSD флаг этот абсолютно безразличен - она, в отличие, например, от DOS или Windows 3.X/9X/ME, может быть загружена с раздела, в качестве загрузочного не маркированного).

Ниже нам любезно предлагается подсказка возможных действий, каждое из которых вызывается односимвольной командой в любом регистре. Прокомментирую их:

  1. A = Use Entire Disk: использование целого диска, при котором создается один слайс, отводимый под FreeBSD.
  2. G = set Drive Geometry: установка геометрии диска, что иногда требуется, если представление цилиндров, головок и секторов в BIOS не соответствует определенному FreeBSD (к этому придется вернуться в одном из следующих разделов).
  3. C = Create Slice: создание слайса, что, думаю, понятно.
  4. F = `DD' mode: использование диска в т.н. эксклюзивном режиме, именуемом также Dangerously Dedicated; этот момент также замнем для ясности до лучших времен.
  5. D = Delete Slice: удаление существующего слайса, а также - любого раздела, созданного любой другой операционкой.
  6. Z = Toggle Size Units: переключение единиц измерения дискового пространства; последовательным нажатиме клавиши Z можно представить размер диска или слайса в кило-, мега- и гигабайтах.
  7. S = Set Bootable: установка того самого флага активности (возможно только для одного слайса.
  8. | = Wizard: новшество под тлетворным влиянием Windows; впрочем, не пробовал...
  9. T = Change Type: изменение идентификатора типа файловой системы.
  10. U = Undo All Changes: отмена всех совершенных действий, после чего разметку диска можно начать с того состояния, в котором он пребывал перед запуском sysinstall.
  11. W = Write Changes: этого пункта вы в данный момент не увидите - он появляется, только если sysinstall запущен из уже установленной FreeBSD, где его выбор приводит (в отличие от предыдущего пункта) к немедленной и необратимой записи всех сделанных изменений; при начальной же установке реальная разметка диска будет выполнена существенно позднее (когда - будет сказано своевременно:-)).

Из приведенного описания порядок дальнейших действий очевиден. Для пустого диска достаточно нажать A, если он весь предназначается для FreeBSD, или C - для создания BSD-слайса необходимого объема, Последняя клавиша потребуется и при частично занятом диске. А если весь диск уже занят разделами под иные ОС, то одним из разделов придется пожертвовать. При этом следует помнить, что все занятые иными операционками первичные разделы будут выглядеть как слайсы, а расширенных sysinstall просто не увидит. И, соответственно, установить в расширенный раздел FreeBSD не удастся.

Конечно, если не отводить под FreeBSD весь диск, предварительно следует решить, сколько места отвести под слайс. Ранее был указан абсолютный минимум для этого - около 2 Гбайт. Однако по возможности этот объем нужно увеличить раза в два-три - при исчерпании доступного пространства более чем на 90% производительность при файловых операциях во FreeBSD падает в геометрической прогрессии, а переполнение файловой системы вообще может привести к печальным последствиям. И вообще, всегда следует помнить, что дискового пространства, как и памяти, много не бывает. Благо, объемы современных винчестеров позволяют не жадничать...

Конечно же, на чистом диске (или на свободном пространстве, если лимит первичных разделов не исчерпан) можно создать и более одного BSD-слайса. И в некоторых случаях, о которых будет говориться в следующем разделе, такое решение окажется целесообразным.

При создании слайса запрашивается два его параметра: размер и идентификатор типа файловой системы. В качестве размера по умолчанию указывается все свободное пространство в секторах. Конечно же, его можно переопределить как угодно, и в качестве единиц измерения указать мегабайты или гигабайты, добавив после числа литеры M или G, соответственно, в любом регистре (рис. 7).

Рис. 7. Определение размера слайса

Идентификатор по умолчанию устанавливается для типа FreeBSD: 165 в десятичной нотации (рис. 8). Можно, конечно, приписать и идентификатор любого другого типа (например, FAT, Extended DOS или Linux native), Помня только о двух вещах: FreeBSD, в отличие от Linux'а, требует именно десятичного значения идентификатора (для Linux native - 131), попытка задать его в восьмеричном исчислении приведе к появлению unknown в поле описания. И второе - не следует ожидать, что таким образом, как по волшебству, будет создан раздел, пригодный к употребелению в DOS или Linux: средств для создания чуждых файловых систем FreeBSD не имеет (хотя понимать их - в состоянии).

Рис. 8. Установка идентификатора файловой системы

По завершении создания слайса (слайсов) из программы разбиения нужно выйти - нажав клавишу Q или Esc. Опасаться за сохранность данных, буде таковые имеются, пока не следует: никаких изменений в таблице разделов пока произведено не будет. Это касается, повторюсь, запуска sysinstall как первичного установщика, с CD. Если же она была запущена из уже инсталлированной FreeBSD, для изменения разделов нужно нажать клавишу W - и перед этим хорошо подумать: в этом случае все сделанные изменения вступят в силу немедленно.

Следующее из необходимых действий при установке любой ОС - обеспечение ее загрузки после инсталляции. И тут это действо совершается сразу после выделения дискового пространства: появившаяся панель предлагает нам возможные варианты (рис. 9).

Рис. 9. Установка начального загрузчика

А вариантов этих - три. Первый (BootMgr) - установить родной FreeBSD'шный менеджер загрузки. Он записывается в MBR разбиваемого диска и обеспечивает старт не только собственной системы, но и любой другой, лежащей на первичном разделе. В сущности, это обычный и очень простой цепочечный загрузчик, который просто передает управление на загрузочный сектор любого из имеющихся первичных разделов, причем не только на данном физическом диске. Выбор осуществляется клавишами F1-F4 (для одного диска) или начиная с F5 - для второго и далее.

Загрузчик FreeBSD хорошо справляется с простыми случаями одной-двух (помимо ее самой) операционок - например, с сочетанием Windows, Linux и FreeBSD. Однако он не видит расширенных разделов и потому не способен ничего загрузить с них. Так что при более сложных ситуациях лучше пользоваться чем-то другим. ИМХО, лучшим для этих целей будет GRUB, однако это выходит за рамки нашей темы (кое-какие сведения по сему предмету можно почерпнуть в соответствующем материале).

Выбор пункта Standard приводит к восстановлению стандартного для PC состояния MBR (аналогично DOS-команде FDISK /mbr) - честно говоря, не очень понимаю, в какой ситуации это может потребоваться: очевидно, что загрузка FreeBSD после этого будет невозможной. А пункт None оставляет имеющиеся в MBR записи в неприкосновенности. И именно его надлежит выбрать, если ранее уже был установлен какой-либо мультисистемный загрузчик (например, тот же GRUB), который и планируется использовать в дальнейшем. Соответственно, не забыв подредактировать его должным образом, чтобы сделать возможным загрузку FreeBSD.

После разборки с загрузчиком мы возвращаемся в панель выбора дисков. И, при необходимости (и наличии более чем одного диска, можем повторить процедуру разбиения. Или же - вернуться в меню заказной утсановки и перейти к пункту Label для завершения подготовки дискового пространства.

Разбиение слайса на партиции опять происходит на радикально черном фоне, на котором можно видеть информацию о подлежащем обработке слайсе (рис. 10).

Рис. 10. Разбиение слайса на партиции

Информация эта достаточно лаконична: имя файла дискового устройства, имя файла слайса, его объем в блоках и мегабайтах:

Disk: da0       Partition name: da0s1   Free: 253920 blocks (123MB)

Если на предыдущей стадии было создано более одного слайса - здесь будет выведена информация о каждом. Следует зафиксировать курсор (срелками Up или Down) на том, который будет препарироваться в первую очередь - после чего станут доступны действия, перечисленные в экранной подсказке. Как и ранее, это - односимвольные команды:

  1. C = Create: создание партиции.
  2. D = Delete: удаление партиции.
  3. M = Mount pt.: установка точки монтирования.
  4. W = Write: запись сделанных изменений; как и в предыдущем случае, при запуске sysinstall с CD этого пункта не будет.
  5. N = Newfs Opts: установка параметров создаваемой файловой системы (размер блока, фрагмента и т.д.).
  6. Q = Finish: выход из редактора disklabel; при работе sysinstall с CD изменения сохраняются для последующего исполнения.
  7. S = Toggle SoftUpdates: добавление поддержки механизма SoftUpdates (чрезвычайно полезная штука, доложу я вам, но о ней подробнее - в одном из следующих разделов); по умолчанию включено для всех разделов, кроме корневого.
  8. Z = Custom Newfs: установка типа файловой системы (например, UFS вместо умолчальной UFS2).
  9. T = Toggle Newfs: указывает, следует ли создавать на разделе новую файловую систему, сиречь форматировать его (что приведет, понятное дело, к потере данных, если таковые имеются).
  10. U = Undo: отмена изменений и, после подтверждения, возврат в редактор слайсов.
  11. A = Auto Defaults: автоматическое создание необходимого минимума партиций на весь объем слайса.
  12. R = Delete+Merge: удаление раздела с присоединением его объема к предыдущему.

Для начала рассмотрим самый простой случай - автоматическое создание таблицы разделов (рис. 11). Фиксируем курсор на нужном слайсе и жмем на клавишу A (переходить в верхний регистр не обязательно).

Рис. 11. Автоматическое создание партиций

Перед нами, как по мановению волшебной палочки, появляется таблица примерно следующего содержания:

Part      Mount          Size Newfs
---- ----- ---- -----
ad8s2a / 256MB UFS2 Y
ad8s2b swap 2038MB SWAP
ad8s2d /var 256MB UFS2+S Y
ad8s2e /tmp 256MB UFS2+S Y
ad8s2f /usr 7429MB UFS2+S Y

С первым полем понятно - это имена файлов устройств, соответствующих каждой партиции. Поле Mount - т.н. точка монтирования, то есть каталог, в который попадет содержимое соответствующей партиции. Можно видеть, что первая партиция (ad8s2a) предназначается для корня файловой системы, а партиции с 3-й по 5-ю - для отдельных ее ветвей. Вторая же партиция (ad8s2b) будет представлять собой swap-раздел.

Далее мы видим размер каждой партиции в мегабайтах. Для каталогов /, /var и /tmp он принимает фиксированные умолчальные значения - по 256 Мбайт на каждый. Объем swap-раздела принимается равным удвоенному объему наличной памяти (в машине, для которой приводится этот пример, ее - 1 Гбайт). Ну и наконец размер каталога /usr оопределен по остаточному принципу.

В поле Newfs приведены - имя файловой системы (по умолчанию - UFS2), задействование механизма SoftUpdates (+S) и требование создания новой файловой системы (Y). Если мы на стадии установки подключаем раздел с данными, которые хотелось бы сохранить, на строке соответствующей партиции следовало бы нажать клавишу T - и это значение сменится на N.

В первом приближении, если не стремиться к максимальной производительности (а достигнуть ее здесь не удастся по причинам, о которых я расскажу в статье про идеальную установку), в этой схеме все устраивает. За одним важным, но существенным исключением: все пользовательские данные оказываются в том же разделе, что и файловая система /usr (/home при этом будет символической ссылкой на /usr/home). А это не есть правильно - кроме все того же падения производительности, это может повлечь за собой потерю данных. Да и просто неудобно...

Так что давайте-ка поупражняемся в изменении таблицы разделов внутри слайса. Нажатием клавиши D уничтожим партицию с именем ad8s2f, а на ее месте создадим две новых.

Для чего жмем на C. С нас последовательно спросят про размер новой партиции (рис. 12), ее тип - будет ли она файловой системой или предназначена для своппинга (рис. 13) и, если будет выбран первый ответ (а именно его мы и выберем), точку для монтирования оной (рис. 14) - очевидно, что опять-таки /usr. Теперь только остается повторить процедуру для партиции под каталог /home - и дело в шляпе, с подготовкой диска покончено.

Рис. 12-14. Этапы создания новой партиции, включающее определение: 12 - размера, 13 - типа, и 14 - точки монтирования.

На самом деле предложенная схема - отнюдь не предел дробления отдельных ветвей файловой системы. Но об этом мы поговорим в следующем разделе.

Установка базовой системы

А пока нам нужно наконец свершить то, ради чего претерпевались все муки дискодробительства. А именно - установить собственно ОС FreeBSD:-) Для чего выходим из Label editor'а, автоматически возвращаясь в меню заказной установки, и отправляемся в пункт Distributions.

Как я неоднократно подчеркивал в своем сочинении, Distributions - это и есть именно (и только, за одним исключением) система FreeBSD. Цельная, единая и (почти) неделимая. Подчеркну - почти. Потому что, в отличие от печально знаменитых (и потому неназываемых) примеров, она не обязывает пользователя устанавливать те ее компоненты, которые ему заведомо не понадобятся. Что наглядно и демонстрируется нам в меню Distributions (рис. 15).

Рис. 15. Distributions - выбор компонентов базовой системы

Мы видим, что тут на выбор предлагают установить несколько предопределенных наборов компонентов:

  1. Developer - для разработчика; он включает всю базовую систему FreeBSD (без игр и оконной системы Икс) и соответствующие ей исходные тексты, а также полный комплект документации.
  2. X-Developer: все то же самое, но еще и оконная система Икс (правда, последняя - без исходников по причинам, о которых будет сказано позднее).
  3. Kern-Developer: несколько облегченный боекомплект разработчика - из всего множества исходников в нем оставлены только исходники ядра системы.
  4. X-Kern-Developer: то же, что и Kern-Developer, однако с добавлением еще и оконной системы Икс.
  5. User - комплект консольного пользователя: включает бинарники системы (в том числе игры) и полную документацию, без Иксов и исходников.
  6. X-User: а здесь к вышесказанному добавляются еще и Иксы.
  7. A Minimal: минимальный комплект, к практическому использованию не пригодный, но представляющий собой (почти) идеальную базу для построения сугубо индивидуализированной системы.

Должен заметить, что лично меня (и, рискну предположить, подавляющее большинство пользователей с неким минимальным опытом работы во FreeBSD) не устраивает ни один из предопределенных комплектов (кроме разве что A Minimal - да и то с оговорками). И именно для таких приверед в меню предусмотрен еще один пункт - Custom, позволяющий произвести отбор с макисмальной степенью детальности. Однако он требует некоторых знаний о внутреннем устройстве системы, представления о том, что с ней делать дальше, сложившихся предпочтений, а потому для первичного знакомства с системой может и не подойти. И речь о нем пойдет в следующем разделе.

Для первого же знакомства, а также для целей быстрого развертывания работоспособной системы "из коробки" (что и составляет задачу данного раздела) подходящим представляется лишь один пункт - X-Developer. Почему - обосновываю:

  1. В необходимости базовой системы, а также документации к ней, надеюсь, никто не сомневается (хотя в вопросе документации следует придерживаться здорового минимализма).
  2. Без Иксов конечному пользователю, за редчайшим исключением, тоже не жизнь - иначе даже картинки негде будет посмотреть.
  3. Исходник ядра системы - необходимость, регенерация ядра во FreeBSD - практически непременный атрибут индивидуальной настройки.
  4. Наконец, исходники всей прочей базовой системы ну никак повредить не могут. В том числе и потому, что без них невозможна увлекательная и полезная процедура make world.
  5. А вот сожалеть об отсутствии игр - не стоит, уверяю вас, смотреть там особо не на что (разве что из ностальгической грусти по маленьким зелененьким человечкам со старых СМ'ок (или ЕС'ок, уже не помню).

Внимательный читатель моих сочинений тут же подловит меня на противоречии самому себе: как же, постоянно, мол, ратуешь за необходимо-достаточный минимализм - а тут предлагаешь ставить все гуртом. Получая в довесок кучу ненужного хлама (одна документация во всевозможных форматах чего стоит). На столь серьезное обвинение готов ответить по всей строгости POSIX'ивистского закона.

Во-первых, строки эти адресуются всем потенциальным пользователям FreeBSD, в том числе и тем, для кого эта ОС будет первой установленной в жизни. И опрометчиво было бы ожидать от них знания того, какой софт из базового комплекта им понадобится по жизни.

Во-вторых, при всей избыточности X-Developer'ского комплекта, в сравнении, скажем, с аскетическим набором Linux from Scratch, при сопоставлении с гигабайтами, устанавливаемыми по умолчанию каким-нибудь Linux Mandrake, он покажется выбором архата-анахорета.

В третьих же, и главных, базовый Distributions FreeBSD урезается столь же легко (и - чисто!), как и наращивается. А любой пользователь любой ОС знает, что первое - задача существенно менее тривиальная, чем второе.

Так что совесть моя чиста. Тех же, кто осознал важность разумного минимализма (и предельного индивидуализма), я рискну отправить сразу к следующему разделу.

Источник и подтверждение

Выбрав тот или иной набор компонентов и вернувшись в меню заказной инсталляции, мы оказываемся на финишной прямой установки. От которой нас отделяют два барьера - пункты Media и Commit.

Они невысоки. На Media вообще притормаживать не стоит - это то же самое, что мы проходили при установке опций (см. рис. 4). И при выбранном нами в этом разделе методе установки никаких действий от нас не требуется - накопитель CD/DVD принят тут как источник инсталляции по умолчанию (а о сетевых вариантах мы условились пока не говорить).

С пунктом Commit - еще проще: это всего-навсего подтверждение уверенности в правоте всех совершенных ранее действий - и по созданию слайсов, и по разбиению их на партиции, и по выбору компонентов инсталляции. Хотя появление такого предупреждения - лишний повод задуматься, а действительно ли все вышесказанное было сделано правильно?

Особенно - в отношении разметки дисков: это единственное, что нельзя будет изменить в дальнейшем без переустановки системы.

Тем не менее - трус в карты не играет, нажатием клавиши Enter на пункте OK предупреждающей панели соглашаемся на претворение в действительность всех наших фантазий.

После этого - жребий брошен, Рубикон перейден, возврата назад уже нет. Ибо немедленно после этого производится перезапись главной таблицы разделов, с выделением BSD-слайса (и теперь уже реальным уничтожением существовавшего раздела, если таковой имелся), перезаписывается MBR, затем записывается таблица BSD-партиций внутри новообразованного слайса, и, наконец, начинается установка компонентов.

Последнее - процесс не быстрый. Вследствие особенностей файловой системы FreeBSD (и принятых опций ее использования), запись большого количества мелких файлов (а, скажем, исходники системы в существенной части из таких и состоят) осуществляется... скажем так, не быстро. Так что можно последовать рецепту Самой Передовой ОС всех времен и народов и откинуться на спинку кресла. Или - напротив, отойти от машины, размять ноги и принять кружечку пивка.

Начальное конфигурирование

Тем не менее, всему наступает конец. В том числе и развертыванию FreeBSD Distributions. После чего осуществляется возврат в главное меню sysinstall (см. рис. 1).

В принципе на этот момент мы имеем установленную базовую систему - да еще и с Иксами. Можно перезагружаться и начинать работать. Вот только работа наша свелась бы для начала к дальнейшей настройке системы. Так что лучше повременить с перезагрузкой и произвести конфигурирование в первом приближении. Для чего и предназначен соответствующий пункт главного меню - Configure, выбор которого приводит к появлению длинного списка доступных для настройки пунктов (рис. 16). Которые стоит рассмотреть внимательно.

Рис. 16. Меню Configure

Пункт Distributions не содержит ничего для нас нового - это все те же предопределенные наборы базовых компонентов, которые мы наблюдали и в одноименном пункте меню Custom. Причем обращаю внимание на то, что наборы или отдельные компоненты, выбранные в ходе, скажем, заказной установки, здесь никак не отмечены. Что может создать ложное впечатление ошибочности предыдущих действий.

Я, например, устанавливая FreeBSD впервые в жизни, с испугу повторил здесь весь процесс выбора - и в результате получил еще полчаса повторного переписывания базовой системы. Это, пожалуй, единственная недоработка программы sysinstall. Тем более странная, что при установке пакетов, как будет сказано абзацем ниже, ничего подобного не происходит.

Выбор пакетов

Итак, по следующему пункту меню Configure - Packages (рис. 17). Это - выбор тех самых дополнительных пакетов, которые отличают полный установочный диск от mini-install. Пакеты объединены в группы по назначению (редакторы, архиваторы, языки программирования и т.д.). Принципы комплектации групп не всегда, на мой взгляд, логичны, но в большинстве случаев интуитивно понятны.

Рис. 17. Выбор пакетов

На составах отдельных групп пакетов останавливаться не буду - они очень сильно меняются от версии к версии. Замечу только, что именно сдесь нужно выбрать редактор и браузер, установленные (в общих опциях инсталляции) ранее в качестве умолчальных, а также любимую командную оболочку. Если этого не сделать (или если требуемые компоненты отсутствуют в составе текущей версии) - ничего страшного. Просто придется в дальнейшем либо скачать соответствующие бинарные пакеты (а на сервере их всегда много больше, чем в любом наборе дисков), либо установить нужные программы из портов.

Пароль root'а

По завершении выбора пакетов немедленно начинается их установка. При большом количестве - это также не быстрый процесс. После чего происходит возврат в меню Configure. Которое следующим пунктом (Root Password) предлагает ввести пароль суперпользователя. Что и надлежит сделать, причем - с повторением. Требований к паролю (например, минимальное количество символов, как во многих Linux'ах) здесь не предъявляется никаких. Так что стоит руководствоваться исключительно требованиями разума.

Пункты Fdisk и Label нас сейчас не интересуют. Это - аналоги пунктов Partition и Label из меню Distributions. И присутствуют здесь на случай дальнейшего конфигурирования - при подключении дополнительного жесткого диска, например. И нам они в последующем пригодятся - при создании идеальной схемы дисковой разметки.

Создание пользовательских аккаунтов

Пункт User Management предлагает создать учетные записи (именуемые также бюджетами или аккаунтами) для пользователей и их групп. Процедура эта заключается в последовательном (рис. 18) заполнении соответствующих полей двух форм.

Рис. 18. Меню User Management

Для пользователя это будут (рис. 19): его регистрационное имя (т.н. логин - в примере user2) и идентификатор (герериуемый автоматически, начиная с 1001), его основная группа (по умолчанию - одноименная пользовательскому имени), пароль, полное имя (помещается в поле комментарием учетной записи), список дополнительных групп, членами которой является данный пользователь (здесь необходимо указать как минимум группу wheel - без этого юзер не сможет получить права root'а командой su), каталог для пользовательских данных (по умолчанию - /home/username), пользовательская командная оболочка (Login shell - по умолчанию /bin/sh, но можно указать и любую другую из числа установленных, а ими в любом случае будут также /bin/csh или /bin/tcsh).

Рис. 19. Пример заполнения учетной записи пользователя.

Для группового аккаунта заполняются (рис. 20) - имя группы, ее идентификатор (также генерируемый автоматически) и список ее членов.

Рис. 20. Пример заполнения групповой учетной записи

Вообще-то я говорю здесь о пользователях и группах только полноты картины ради: на стадии установки от создания учетных записей лучше отказаться. Во-первых, это можно сделать в дальнейшем - и более удобным способом (во FreeBSD для управления аккаунтами существуют очень удобные и универсальные инструменты, такие, как useradd и pw). Во-вторых, создание учетной записи через sysinstall не предполагает заполнения такого важного поля, как class. И в третьих, если требуется создание более чем одного аккаунта со сходными атрибутами, это целесообразно делать после установки этих самых общих их характеристик (о чем мы поговорим со временем).

Тем не менее, в рамках концепции быстрого развертывания и скорейшего начала работы одну юзерскую запись создать не вредно: выполнение от лица root'а обычных пользовательских действий есть занятие весьма нездоровое.

Настройка консоли

Теперь переходим к настройке консоли, что делается в одноименном пункте - Console (рис. 21). Он очень важен - именно здесь мы выполним базовую русификацию системы, что сразу же после рестарта даст нам возможность полноценной работы в кириллическом окружении.

Рис. 21. Настройка системной консоли

Итак, по пунктам: Font - это выбор экранного шрифта, отличного от умолчального (разумеется, не содержащего никаких символов, кроме чистой латиницы). В списке доступных через меню (рис. 22) нас интересуют только два - IBM 866 и IBM 866u (для граждан России и Украины, соответственно). Они обеспечивают экранный вывод в т.н. кодировке DOS, общепринятой в этих целях и в Linux, и во FreeBSD. Можно установить и вывод в кодировке IBM 1251 (иначе - cp1251, или кодировке Windows), привычной для "подоконников". Однако это нецелесообразно (ибо очень уродливо), даже при необходимостив системной кодировке cp1251 вывод лучше оставить в IBM 866.

Рис. 22. Выбор экранного шрифта

Пункт Keymap - это выбор раскладки клавиатуры. Среди предлагаемого изобилия (рис. 23) для наших целей подходит только одна Russia KOI8-R - других кириллических раскладок здесь обнаружить не удастся (хотя их можно легко добавить впоследствии). Она обеспечивает клавиатурный ввод в кодировке KOI8-R, до недавнего времени общепринятой в свободных POSIX-системах (ныне в Linux ее с переменным успехом теснит UTF-8, во FreeBSD пока широкого распространения не получившая). Раскладки для ввода в Windows-кодировке в штатном комплекте не обнаруживается - но ее можно получить в этом комплекте: http://posix.ru/download/keymaps-ru.tar.bz2.

Рис. 23. Выбор клавиатурной раскладки

Внимательный читатель обратит внимание на несоответствие кодировок ввода и вывода. Да, такое имеет место быть. И в пункте Screenmap мы это несоответствие ликвидируем. Выбрав из списка (рис. 24) подходящую карту перекодирования (т.н. карту соответствия) одного в другое. А подходящей картой, как нетрудно догадаться, будут KOI8-R to IBM866 (для Руси) или KOI8-U to IBM866u (для Украины).

Рис. 24. Выбор карты соответствия.

Заодно отметим отсутствие карты соответствия типа IBM 1251 to IBM 866. Что означает то, что при выборе Windows-кодировки в качестве общесистемной такую карту нам пришлось бы в дальнейшем отыскивать (например, здесь - http://posix.ru/download/) и устанавливать самостоятельно.

Теперь остается установить тип терминала, для чего предназначен пункт Ttys. Заходим в него (рис. 25) и выбираем подходящий - ими будут опять же KOI8-R или KOI8-U (для граждан соответствующих независимых государств).

Рис. 25. Выбор типа терминала

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

Однако, не покидая меню Console, мы можем выполнить еще несколько дополнительных настроек, для чего обращаемся к пунктам Repeat, в котором указывается скорость повтора (рис. 26 - ИМХО, кроме как Fast, ничего более не подходит) и Saver, позволяющий задать скринсейвер для текстового режима (рис. 27 - тут уж я от рекомендаций воздержусь, это - дело вкуса).

Рис. 26. Задание скорости повтора нажатия клавиш

Рис. 27. Задание скринсейвера текстового режима

Установка часового пояса

Покончив с консолью, следует перейти к установке часового пояса. Здесь сначала будет запрошено (рис. 28), установлены ли системные часы на время по Гринвичу, или нет. Последний ответ - по умолчанию, однако если вы в ходе подготовки последовали моему совету, ответить нужно положительно (и скоро станет ясным, почему).

Рис. 28. Выбор пояса для системного времени

Теперь выбираем континент, на котором имеем удовольствие находиться (рис. 29) - даже для тех из нас, кто проживает в азиатской части нашей Родины, выбирать можно Europe. Впрочем, не возбраняется и наоборот, ибо если Петропавловск-Камчатский принадлежит Европе, то и Калининград, обратным порядком, принадлежит Азии:-) (смайликов тут можно ставить сколько угодно).

Рис. 29. Выбор континента

Теперь остается выбрать страну (рис. 30 или 31, вне зависимости от континента для моих сограждан это будет Russian Federation) и, наконец, собственно часовой пояс. Для Центра Европейской части это будет Moscow+00 - west Russia (рис. 32). Нажимаем OK, чем заодно выходим из меню, в ходе чего получаем вопрос - а резонно ли употребить абрревиатуру MSK для нашего часового пояса (почему бы и нет). Время установлено.

Рис. 30. Россия в Европе:-)

Рис. 31. Россия в Азии:-)
Рис. 32. Часовой пояс

Пункт Media в меню Configure нас сейчас не интересует (это переопределение все того же источника инсталляции). А вот к пункту Mouse проявим должное внимание - он позволит нам включить службу консольной мыши.

Настройка консольной мыши

Эта чрезвычайно полезная штука носит во FreeBSD название moused и выполняет исключительно предопределенные Unix-богом функции - быть средством для переноса данных между консолями. И, в отличие от Linux'ового gpm, вовсе не претендует на роль указательного устройства.

Так что - открываем этот пункт и видим такую картину (рис. 33). Пункт Enable покахет нам мышиный (т.н. графический, в виде стрелки; хотя на самом деле образован он символами псевдографики - пока просто запомним это, при индивидуальной русификации системы это может быть важным). Если мы его увидели и смогли подвигать - значит, все в порядке, тем или иным способом мышь включить удастся (хотя сейчас она как таковая и не работает). Если не увидели - значит, имеем (скорее всего, случаи экзотической архаики не рассматриваются) мышь на USB. Что тоже не страшно - такой грызун заработает гарантированно.

Рис. 33. Вид на меню Mouse

В пункте Type (рис. 34) определяется протокол взаимодействия с мышью. Что это такое - разбираться пока не будем: достаточно запомнить, что пункт Auto подойдет для всех современных PS/2- и USB-устройств с вероятностью 99 и 9 в периоде. Если у вас живет нечто древнее, эпохи юрского или сеноманского горизонта (видел тут такое на бутылке пива "Оболонь") - остается посетовать на собственную аккуратность и читать документацию (или, может, проще купить новую мышь?).

Рис. 34. Выбор мышиного протокола

В пункте Port указывается разъем, к оторому мышь подсоединена. Очевидно, что если она - PS-пополамная, то и выбрать нужно подпункт PS/2 (рис. 35). А для USB-мыши (в списке отсутствующей) пункт Port можно (и нужно) просто пропустить.

Рис. 35. Выбор порта подключения мыши

Как, впрочем, и пункт Flags - если, конечно, у вас нет веских оснований к нему обратиться, и вы хорошо знаете, что делаете. И заклинаю вас - не обращайтесь к пункту Disable, иначе после перезагрузки мыши в консоли не обнаружится. Что, конечно, лекго поправимо, но потребует одного лишнего телодвижения.

Настройка сети

Покончив с мышью, переходим к пункту Networking из меню Configure (рис. 36). Здесь для нас важны два подпункта. Особенно - первый, Interfaces. Ибо его посредством можно настроить сетевое соединение - как с локальной сетью, так и через модем. Хотя именно на нем-то мы здесь задерживаться не будем: настройка модемного соединения описана в соответствующей статье, а на настройке локалки я планирую остановиться в разделе об идеальной установке.

Рис. 36. Настройка сети

А вот на втором из нужных пунктов - Ntpdate, - несколько задержим свое внимание. Ибо это - установка соединения с сервером точного времени, что позволит нам нечувствительно иметь точные часы на нашем компьютере (и не заморачиваться с переходом на летнее/зимнее время). Правда, для этого требуется иметь системные часы, установленные на UTC (именно поэтому я настоятельно рекомендовал это сделать), а также пеостоянное подключение к Сети - то самое, настройку которого мы пропустили в прошлом абзаце:-).

Если эти условия выполнены - достаточно открыть этот пункт и выбрать сервер точного времени из преложенного списка (рис. 37). Должен покаяться в собственном непатриотизме - я лично пользуюсь обычно не каким-либо из российских, а первым попавшимся, с которым удается соединится (обычно это один из австралийских). Что, тем не менее, не мешает мне давно забыть о проверке системных часов (и астрономических изобретениях наших правителей, якобы призванных экономить электроэенергию).

Рис. 37. Выбор сервера точного времени

Забегая вперед, скажу, что при выбранном в предыдущем абзаце способе синхронизации наших часов с сервером осуществляется при старте системы. И потому для модемного подключения он не подходит. Однако ничего не потеряно - и при dial-up'е можно иметь точное время на одном отдельно взятом персональном компьютере (надеюсь, что статья о том, как это сделать, скоро появится на нашем сайте).

Прочие пункты из меню Networking я бы хладнокровно проигнорировал (ставив включенное по умолчанию как есть - если, конечно, вы опять-таки не имеете везких резонов настроить какой-либо Gateway - но тогда мое сочинение вряд ли вам нужно). Как и пункт Security - подобно большинству простых смертных, я ничего в этом не смыслю и потому в домашних условиях полагаюсь на умолчания разработчиков (а для не-домашних - это вахта сисадмина).

Настройка стартовых сервисов

А вот по пункту Startup (рис. 38) хорошо бы пройтись частым гребнем. Ибо в нем устанавливается, какие сервисы должны запускаться при старте системы. ИМХО, в домашних условиях необходим единственный пункт - usbd (смысл которого, надеюсь, понятен - его включение требуется для обращения к USB-устройствам). Ну и пункт Linux - если есть необходимость в т.н. режиме совместимости с Linux-бинарниками.

Рис. 38. Включение стартовых сервисов

Пункт TTYs опять-таки пропускаем - ведь правильный тип терминала мы установили при настройке консоли, не так ли? Необходимости в измении Options также не просматривается - ведь это был чуть ли не первый наш шаг при установке FreeBSD.

Вот и все, установка и начальное конфигурирование FreeBSD окончено. Остается только выйти из меню Configure, а затем - и из sysinstall вообще, что, после соответствующего подтверждения, повлечет за собой перезапуск системы.

Заключение

Можно видеть, что установка и первичная настройка FreeBSD ничуть не сложенее, чем большинства дистрибутивов Linux, хотя и не споровождается красотами графического режима. Если же вы все-таки испытываете резкую антипатию к текстовым установщикам - приобщиться к BSD-миру можно посредством одного из двух дистрибутивов Free BSD - PC-BSD или DesktopBSD. Благо оба они активно развиваются в последнее время.