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

По умолчанию, в операционной системе FreeBSD 11 используется стандартное ядро, которое называется GENERIC. В этой статье описан процесс перекомпиляции ядра (называемого CUSTOM в данном примере) с настройкой дополнительных параметров.

Подготовка

Для начала, установим ОС FreeBSD. Скачать её дистрибутив можно на официальном сайте: https://www.freebsd.org/ru/.

Когда процесс развертывания ОС будет завершен, установим утилиту sudo из-под учетной записи root:

# pkg install -y sudo

Затем, создадим нового пользователя и сделаем его членом группы wheel (это даст возможность работать с командой sudo), а также зададим пароль:

# pw useradd test -g wheel
# passwd test
Changing local password for test
New Password:
Retype New Password:

Настроим разрешения, позволяющие всем членам группы wheel исполнять любые команды:

# visudo

затем, раскомментируем в редакторе строку

# %wheel ALL=(ALL) ALL

приведя её к следующему виду:

%wheel ALL=(ALL) ALL

Сохраним изменения, нажав клавишу Esc и выйдем из редактора, набрав команду :wq!

Перейдем в оболочку нового пользователя:

# su test
$

Получение исходного кода

Чтобы перекомпилировать ядро, сначала необходимо получить исходный код из системы управления версиями FreeBSD. Для этого установим пакет subversion:

$ sudo pkg install -y subversion
Password:

По умолчанию, оболочкой для новых пользователей во FreeBSD является sh, однако, после установки subversion нам потребуется изменить его на csh.

Проверим, какая оболочка используется по-умолчанию:

$ echo $SHELL
/bin/sh

Теперь, изменим оболочку текущего пользователя на csh:

$ chsh -s /bin/csh
Password:
chsh: user information updated

Убедимся, что внесенные изменения сохранены:

$ grep test /etc/passwd
test:*:1001:0:User &:/home/test:/bin/csh

еще один вариант проверки:

$ echo $SHELL
/bin/csh

После изменения настроек оболочки, выполним повторное сканирование переменной PATH:

$ rehash

И, если всё прошло успешно, скопируем исходный код стабильной ветки FreeBSD в папку /usr/src:

$ sudo svn co --trust-server-cert --non-interactive https://svn0.us-east.freebsd.org/base/stable/11/ /usr/src
Password:
Checked out revision 317943.

Создание настраиваемой конфигурации

Для создания собственной конфигурации, которую мы назовём CUSTOM, нам необходимо скопировать существующую стандартную конфигурацию GENERIC:

$ sudo cp /usr/src/sys/amd64/conf/GENERIC /usr/src/sys/amd64/conf/CUSTOM
Password:

В нашей конфигурации ядра CUSTOM мы сделаем некоторые изменения. Для этого необходимо открыть файл /usr/src/sys/amd64/conf/CUSTOM:

$ sudo vi /usr/src/sys/amd64/conf/CUSTOM

В строке 22 можно заметить флаг идентификатора (номера строк можно увидеть в редакторе vi, нажав клавишу Esc, затем введя :set nu):

22 ident GENERIC

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

22 ident CUSTOM

Кроме того, в конце файла конфигурации мы добавим следующее:

options IPSEC
options TCP_SIGNATURE

Как только редактирование файла будет завершено, сохраним файл и выйдем из редактора, набрав команду :wq!

Дополнительная информация по различным опциям может быть найдена в файле NOTES для каждого типа архитектуры в каталоге /usr/src/sys/.

Ниже приведены некоторые из наиболее популярных архитектур:

 /usr/src/sys/amd64/conf/NOTES
/usr/src/sys/arm64/conf/NOTES
/usr/src/sys/i386/conf/NOTES

Информация о параметрах конфигурации, относящихся к конкретной архитектуре находится в файле  /usr/src/sys/conf/NOTES.

Больше подробностей можно найти в официальном руководстве — FreeBSD Handbook.

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

Теперь мы скомпилируем наше ядроCUSTOM: для этого перейдем в каталог /usr/src/ и введём команду make buildkernel с опцией CUSTOM:

$ cd /usr/src
$ sudo make buildkernel KERNCONF=CUSTOM
Password:

Здесь необходимо заметить, что время компиляции напрямую зависит от производительности ПК. Например, на моём нетбуке ASUS Eee PC 1225B с процессором AMD E450 1.6 ГГц и 4 ГБ ОЗУ ядро собирается примерно за 4 часа:

--------------------------------------------------------------------
>>> Kernel build for CUSTOM completed on Sat Oct 14 15:32:21 UTC 2018
--------------------------------------------------------------------

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

$ sudo make installkernel KERNCONF=CUSTOM
Password:

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

$ sudo shutdown -r now
Password:

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

$ sysctl kern.conftxt | grep ident
ident CUSTOM

или

$ uname -i
CUSTOM


Статья написана на основе материала Vultr Holdings Corporation: https://www.vultr.com/docs/how-to-build-and-install-a-custom-kernel-on-freebsd-11

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

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