Как правильно построить минимальное ядро ​​FreeBSD?

Есть ли подходящий способ создания минимального ядра для FreeBSD? В руководстве FreeBSD отсутствует информация об этом. По умолчанию каталог /boot/kernel имеет довольно большой размер – около 450 МБ. Я хочу минимизировать отпечаток ядра и удалить все ненужные модули ядра и параметры. Должен ли я использовать параметр "NO_MODULES" в "NO_MODULES" /etc/make.conf ? Или использовать флаговые C-компиляции?

2 Solutions collect form web for “Как правильно построить минимальное ядро ​​FreeBSD?”

Есть несколько вещей, которые вы можете сделать, чтобы уменьшить размер и количество файлов в /boot/kernel .

Возможно, лучшее сохранение пространства должно быть установлено, установив WITHOUT_KERNEL_SYMBOLS в /etc/src.conf (если этот файл еще не существует, просто создайте его), и в следующий раз, когда вы installkernel , файлы символов отладки не будут установлены , Теперь их можно удалить, если вам нужно пространство сразу ( rm /boot/kernel/*.symbols )

Есть несколько настроек make.conf , которые контролируют, какие модули построены:

  • NO_MODULES – полностью отключить создание модулей
  • MODULES_OVERRIDE – указать модули, которые вы хотите создать.
  • WITHOUT_MODULES – список модулей, которые не должны быть построены

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

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

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

Хотя это может быть очень утомительно, наилучшим подходом является принятие небольших шагов, одновременное удаление одной или двух вещей и обеспечение правильной сборки и правильной сборки результирующей конфигурации. Однако, что бы вы ни делали, я настоятельно рекомендую вам сделать копию /usr/src/sys/<arch>/config/GENERIC и отредактировать копию. Если вы когда-нибудь так запутались, что единственный выход – начать с конфигурации по умолчанию, вы будете рады, что у вас все еще есть файл GENERIC в вашей системе!

Чтобы создать собственное ядро, вы можете либо передать имя конфигурации в командной строке, либо make KERNCONF=MYKERNCONF buildkernel , либо вы можете установить KERNCONF в KERNCONF /etc/make.conf . Убедитесь, что вы установили собственный файл конфигурации в /usr/src/sys/<arch>/config и система сборки сможет его найти.

«Правильное» ядро ​​является относительным понятием и зависит от ваших потребностей. Люди, которые должны спросить о создании ядра, не имеют бизнес-здания. Кстати, как вы придумали размер ядра FreeBSD размером 450 МБ

 root@neill-backup:~ # uname -a FreeBSD neill-backup.int.autonlab.org 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 

Вот

 root@neill-backup:~ # du -h /boot/kernel/kernel 20M /boot/kernel/kernel 
  • Как настроить мой компьютер Linux для предоставления Интернета на компьютер FreeBSD через порт Ethernet?
  • Использование сжатых RAM-дисков для свопинга в FreeBSD на ранней доске Raspberry Pi
  • FreeBSD zfs создает gpt
  • Как включить поддержку файловой системы Unix в ядре Linux?
  • Что такое строка «+++ / tmp / security»?
  • Сохранение config / pkg dirs в существующей BSD-установке для повторного использования при чистой установке и безопасные способы ее выполнения?
  • Как добавить разрешение группы только для чтения в папку, у которой уже есть группа по умолчанию, и унаследовать ее для всех вновь созданных файлов и папок?
  • Как неисправное оборудование вызывает ошибку страницы ядра (фатальная ловушка 12)?
  • Является ли (бесплатно) BSD Codebase ANSI совместимым?
  • Как создать загрузочный USB-диск FreeBSD 10?
  • Как разрешить неавторизованные логины через ssh на FreeBSD?
  • Interesting Posts

    Egrep первые несколько символов в каждой строке?

    Блокировать / предотвращать команду, если она была выполнена в течение последних x секунд / минут

    Скрепление беспроводной сети и 3g на Fedora 15

    iconv перевод английского на русский язык

    Сглаживание сложных структур папок с дублирующимися именами файлов

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

    Samba 3.5.9 – присоединиться к доменным OU – нетто-объединенным объявлениям

    Есть ли способ отправить строку в STDIN существующего PID в AIX?

    Серийный файл – нет добавления

    Как отключить ускорение GPU в моем архиве?

    Использование пользовательского имени для корневого устройства в GRUB

    unrar часть многостраничного файла rar

    Ошибка установки карты памяти Fedora 17

    Debian 8 устанавливается в гостевой системе QEMU / KVM из-за ошибок ext4-fs / "только для чтения файлов"

    Проблема с разрешением на запись Samba

    Linux и Unix - лучшая ОС в мире.