Logo Craft Homelab Docs Контакты Telegram
Сборка ядра Linux под своё железо: localmodconfig, modprobed-db и menuconfig Трендовые github проекты в нашем телеграм канале. Подпишись →
10 мая 2026 г.

Сборка ядра Linux под своё железо: localmodconfig, modprobed-db и menuconfig

Сборка собственного ядра Linux — не обязательный ритуал для каждого сервера, но полезная инженерная практика. Она помогает понять, какие драйверы реально используются, где живёт kernel config, почему обновление ядра может сломать загрузку и как безопасно экспериментировать с низким уровнем системы.

Главная идея кастомной сборки — не «сделать быстрее любой ценой», а убрать лишнее, оставить нужное и сохранить контролируемый путь отката. Для homelab это особенно полезно: железо известно заранее, набор устройств стабильный, а значит конфигурацию можно сузить без потери функциональности.

Зачем вообще собирать своё ядро

Практические причины бывают разные:

  • уменьшить количество ненужных модулей;
  • включить или отключить конкретную опцию;
  • проверить новый патч;
  • собрать ядро под старое или нестандартное железо;
  • лучше понять boot process;
  • снизить attack surface за счёт отключения лишних подсистем.

Не стоит ожидать магического ускорения. На обычном desktop или VPS разница часто будет незаметна. Но для embedded, homelab appliances, лабораторных стендов и security experiments кастомное ядро даёт больше контроля.

localmodconfig

make localmodconfig берёт текущий список загруженных модулей и формирует конфигурацию, где сохраняется только то, что уже используется. Это удобно, но есть ловушка: если устройство или файловая система не были активны в момент сбора списка, нужный модуль может исчезнуть из config.

Перед запуском стоит подключить всё важное:

  • диски и сетевые интерфейсы;
  • Wi‑Fi/Bluetooth, если нужны;
  • USB-устройства;
  • VPN/туннели;
  • файловые системы;
  • sensors и мониторинг;
  • контейнерные подсистемы.

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

modprobed-db

modprobed-db помогает накопить список реально используемых модулей за время. Вместо одного моментального снимка он ведёт базу модулей, которые загружались в разные сценарии. Это снижает риск выкинуть что-то нужное.

Подход такой:

  1. установить инструмент;
  2. несколько дней пользоваться системой как обычно;
  3. подключить периферию и запустить типовые сервисы;
  4. сохранить список модулей;
  5. использовать его при подготовке конфигурации.

Для рабочей станции это особенно полезно: сегодня подключён один USB-адаптер, завтра другой, а через неделю понадобится редко используемый модуль.

make menuconfig — интерактивный способ проверить и поправить kernel config. После автоматического сужения конфигурации стоит пройтись по ключевым разделам вручную:

  • processor type and features;
  • filesystems;
  • networking support;
  • device drivers;
  • virtualization;
  • security options;
  • container-related features;
  • tracing/debugging.

Для сервера с Docker или Kubernetes важно не отключить cgroups, namespaces, overlayfs, netfilter и другие подсистемы, которые не всегда выглядят очевидно в меню.

Безопасная установка

Самое важное правило: не удалять рабочее ядро. Новое ядро нужно добавить рядом, обновить bootloader и оставить предыдущий вариант в GRUB. Тогда при неудачной сборке можно загрузиться назад.

Полезный чеклист:

  • сохранить текущий .config;
  • записать версию рабочего ядра;
  • проверить наличие initramfs;
  • обновить GRUB;
  • оставить старый пункт загрузки;
  • иметь доступ к консоли или rescue mode;
  • не экспериментировать на единственной production-машине без бэкапа.

Отладка после загрузки

После успешной загрузки стоит проверить:

uname -a
lsmod
journalctl -b -p warning
systemctl --failed
ip a
mount

Если не стартует сервис, проблема может быть не в приложении, а в отсутствующей kernel option. Для контейнеров полезно проверить storage driver, iptables/nftables, cgroups и overlayfs.

Итог

Кастомная сборка ядра Linux — хороший способ глубже понять систему и убрать лишнее под конкретное железо. Но автоматические инструменты вроде localmodconfig нужно использовать осторожно: они видят только то, что реально было загружено.

Оптимальный путь — накопить список модулей через modprobed-db, проверить config через menuconfig, оставить старое ядро для отката и только потом экспериментировать. Такой подход превращает сборку ядра из рискованного шаманства в контролируемую инженерную процедуру.