Операционная система FreeBSD  по умолчанию использует ядро GENERIC. Эта стандартная конфигурация используется для поддержки большого количества аппаратных средств из коробки. Компиляция пользовательского ядра, в свою очередь, позволяет повысить безопасность, увеличить функциональность и улучшить производительность сервера.

Для этого FreeBSD использует две ветки кода: стабильную и текущую. Стабильная ветка – это последний релиз кода, готовый к производству. Текущая ветка – это последний релиз кода от команды разработчиков, который предоставляет передовые функции, но при этом более уязвим к ошибкам и нестабильностям системы. Теперь можно приступать к настройке ядра системы.

Согласно конвенции об именах конфигурационных файлов ядра, имя ядра должно записываться в верхнем регистре. В данном руководстве этот файл будет называться EXAMPLE. Настройки ядра хранятся в каталоге /usr/src/sys/architecture/conf; допустим, используется архитектура AMD64.

Откройте конфигурационный каталог:

Создайте файл EXAMPLE и откройте его для редактирования в любом текстовом редакторе (в данном случае используется ее):

Ядро GENERIC поддерживает огромное количество различной аппаратуры; ядро EXAMPLE поддерживает только оборудование, необходимое для запуска сервера, все стандартные и ненужные устройства удалены. Также EXAMPLE поддерживает фаервол для фильтрации пакетов (pf), шейпинг трафика (altq), шифрование файловой системы (geom_eli) и безопасность IP (IPsec).

 Сборка и установка ядра

Создав пользовательские конфигурации ядра, нужно собрать и перекомпилировать его.

Вернитесь в каталог /usr/src и выполните команду make buildkernel, используя новый конфигурационный файл:

cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE

Это может занять некоторое время в зависимости от объёма ресурсов сервера (в среднем сервер в 1GB компилируется 90 минут).

После завершения перекомпиляции установите новое ядро:

sudo make installkernel KERNCONF=EXAMPLE

Затем перезапустите систему.

sudo shutdown -r now

После этого сервер отключит текущие сервисы, синхронизирует диски и обновит ядро.

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

sysctl kern.conftxt | grep ident

На экране должен появиться такой результат:

ident    EXAMPLE

Настройка и перекомпиляция ядра выполнена успешно.

Можно чуть по другому…

2. Исходные коды системы должны быть установлены.

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

Далее редактируем полученный файл SERVER в текстовом редакторе, новичкам будет проще использовать редактор ee.

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

После этого, собранное ядро нужно инсталлировать:

И перезагрузиться:

Если система не загружается с новым ядром, то в меню загрузки нужно выбрать пункт 6 "Escape to loader prompt" и ввести в приглашении загрузчика boot kernel.old. Система загрузится с предыдущим ядром. После этого нужно ещё раз проверить конфигурационный файл и повторить процесс пересборки.

Один комментарий для “FreeBSD перекомпиляция ядра

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *