2. Почему мне (не) нужна FreeBSD From Scratch?

Это закономерный вопрос. У нас имеется утилита sysinstall и хорошо изученный способ компиляции ядра и пользовательских приложений.

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

  • Обычно она использовалась для установки уже откомпилированных дистрибутивных наборов и пакаджей с некоторого носителя (CD, DVD, FTP). Она не может устанавливать результат выполнения make buildworld.

  • Она не может устанавливать вторую систему в некоторый каталог уже работающей системы.

  • Она не может выполнять установку в разделы Vinum.

  • Она не может строить порты, а лишь устанавливать уже откомпилированные пакаджи.

  • Создание скриптов или выполнение нестандартных действий после установки затруднено.

  • И последним, но одним из самых важных факторов, является полуофициальное прекращение дальнейшей поддержки sysinstall.

Хорошо известный способ полного построения и установки системы, описанный в Руководстве, по умолчанию замещает существующую систему. При этом сохраняются только модули и ядро. Системные бинарные файлы, файлы объявлений функций и множество других файлов перезаписываются; уже ненужные файлы остаются и могут преподносить сюрпризы. Если по какой-либо причине обновление завершилось неудачно, бывает трудно и даже невозможно вернуть систему в исходное состояние.

FreeBSD From Scratch решает все эти проблемы. Её стратегия проста: использование работающей системы для установки новой в пустое дерево каталогов, при этом новые разделы монтируются в соответствующие места этого дерева. Многие конфигурационные файлы могут быть скопированы в соответствующее место, а mergemaster(8) сможет позаботиться о тех, что скопировать не удалось. Тонкая настройка новой системы может быть выполнена в старой, вплоть до момента, когда вы сможете выполнить chroot в новую систему. Другими словами, мы проходим через три этапа, при этом каждый шаг представляет собой либо запуск скрипта, либо вызов команды make:

  1. stage_1.sh: Создание новой загружаемой системы в пустом каталоге и объединение либо копирование максимально большего количества необходимых файлов. Затем загрузка новой системы.

  2. stage_2.sh: Установка требуемых портов.

  3. stage_3.mk: Выполнение последующей настройки программного обеспечения, установленного на предыдущем этапе.

После того, как вы воспользуетесь FreeBSD From Scratch для построения второй системы и в течение нескольких недель убедитесь, что она работает удовлетворительно, можете затем использовать её повторно для переустановки исходной системы. С этого момента, как только вы почувствуете необходимость обновления, то просто выберите разделы, которые хотите удалить и выполнить переустановку.

Может быть, вы слышали и даже пробовали использовать систему Linux From Scratch, или LFS для краткости. LFS также определяет, как построить и установить систему с нуля на пустой раздел при помощи работающей системы. LFS делает упор на выяснение роли каждого компонента системы (таких, как ядро, компилятор, устройства, командный процессор, база данных терминальных устройств и так далее) и деталей установки каждого компонента. FreeBSD From Scratch не опускается до такого уровня детализации. Моей целью является проведение автоматизированной и полной установки, а не описание всех кровавых подробностей полного перепостроения системы. В случае, если вы хотите изучить FreeBSD до такого уровня, начните с просмотра /usr/src/Makefile и следуйте действиям, которые выполняет make buildworld.

В подходе, который применяется в FreeBSD From Scratch, имеются свои отрицательные стороны, которые вы должны иметь в виду.

  • При компиляции портов на втором этапе систему нельзя использовать в обычном режиме. Если вы имеете дело с сервером, работающим в режиме промышленной эксплуатации, вы должны быть готовы к простою, к которому приводит выполнение второго этапа. Порты, построенные при помощи stage_2.conf.default ниже, требуют примерно 4 часа для построения на системе AMD1800+ со SCSI-дисками, имеющими скорость вращения 10krpm и 1 Гбайтом ОЗУ. Если вы предпочитаете устанавливать пакеты, а не порты, то вы можете существенно сократить время простоя, примерно на 10 минут.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.

Обновлено: 12.03.2015