Гид по технологиям

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

• 4 min read • Linux • Обновлено 17 Nov 2025
Сборка и установка собственного ядра Linux
Сборка и установка собственного ядра Linux

5 Настройка ядра

Лучше всего использовать конфигурацию текущего рабочего ядра как основу для нового. Скопируйте существующую конфигурацию в каталог исходников ядра (/usr/src/linux):

cp /boot/config-`uname -r` ./.config 

Запустите меню конфигурации ядра:

make menuconfig

В меню выберите “Load an Alternate Configuration File” и укажите файл .config (он содержит конфигурацию текущего рабочего ядра).

Скриншот: выбор файла конфигурации ядра в make menuconfig

Скриншот: меню загрузки альтернативной конфигурации в make menuconfig

Просмотрите опции меню и сделайте нужные выборы. Когда закончите и выберете Exit, ответьте на вопрос “Do you wish to save your new kernel configuration?” — Yes.

Диалог сохранения новой конфигурации ядра

Важно: сохраняйте исходный .config до внесения серьёзных изменений. Если вы не уверены в опции, отметьте её как модуль (M) или оставьте по умолчанию.

Примечание: термины

  • make menuconfig — текстовый интерфейс конфигурации ядра.
  • .config — файл конфигурации ядра.

6 Сборка ядра

Чтобы собрать пакеты .deb, выполните эти две команды в каталоге с исходниками:

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

После –append-to-version= можно написать любую строку для идентификации сборки, но она должна начинаться с дефиса (-) и не содержать пробелов.

Будьте терпеливы: компиляция ядра может занять от ~10 минут до нескольких часов в зависимости от конфигурации и скорости процессора. На старых машинах и при включённых многочисленных опциях (например, встроенная поддержка файловых систем или драйверов) время увеличивается.

Факто-бокс:

  • Ожидаемое время: от 10 мин до нескольких часов.
  • Требуемое свободное место в /usr/src и /boot: обычно десятки мегабайт — сотни мегабайт в зависимости от модулей.
  • Рекомендуется: не прерывать процесс, использовать UPS на серверах.

7 Установка нового ядра

После успешной сборки в каталоге /usr/src появятся два .deb файла. Проверьте:

cd /usr/src
ls -l

Пример имён пакетов на тестовой системе:

linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb

Устанавливайте их так:

dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb

Совет: вы можете перенести эти .deb на другие Ubuntu-системы и установить их без повторной компиляции.

Проверьте /boot/grub/menu.lst — там должны появиться две записи для нового ядра. Откройте файл:

vi /boot/grub/menu.lst

Записи, добавленные на тестовой системе, выглядели так:

| title Ubuntu, kernel 2.6.18.1-custom root (hd0,0) kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash initrd /boot/initrd.img-2.6.18.1-custom savedefault boot title Ubuntu, kernel 2.6.18.1-custom (recovery mode) root (hd0,0) kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single initrd /boot/initrd.img-2.6.18.1-custom boot |

Теперь перезагрузите систему:

shutdown -r now

Проверьте, что система загрузилась с новым ядром:

uname -r

Вы должны увидеть что-то вроде:

2.6.18.1-custom

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

Экран ошибки загрузки — остановка на этапе загрузчика

Меню GRUB с выбором старого ядра

Календарь отката и план действий при проблеме:

  • Шаг 1 — при зависании загрузчика: нажмите ESC, выберите старую запись в GRUB и загрузитесь.
  • Шаг 2 — проверьте логи: /var/log/syslog, dmesg, /var/log/boot.log.
  • Шаг 3 — если проблема связана с модулем, загрузитесь в режиме восстановления, удалите или замените проблемный модуль, пересоберите ядро.
  • Шаг 4 — после исправления удалите нерабочие stanzas в /boot/grub/menu.lst, чтобы не загромождать меню.

Критерии приёмки:

  • Система загружается в выбранном режиме (обычный и recovery).
  • uname -r показывает ожидаемую версию.
  • Вся критичная служба запускается и проходит базовые тесты (network, disk mounts, systemd services).

Роль-по-роли — краткий чеклист:

  • Для разработчика модуля:
    • Включите поддержку модулей (M) для нужных опций.
    • Соберите headers и протестируйте модуль на тестовой машине.
  • Для системного администратора:
    • Сделайте резервную копию /boot и /etc/grub/menu.lst.
    • Подготовьте доступ к консоли/серийному порту.
  • Для тестировщика:
    • Прогоны reboot, проверка сетевых интерфейсов, файловой системы и критичных демонов.

Мини-методология (быстрый план):

  1. Скопировать текущий .config.
  2. Настроить через make menuconfig.
  3. Собрать пакеты через make-kpkg.
  4. Установить .deb и перезагрузить.
  5. Проверить uname -r и логи; при сбое выполнить откат.

Mermaid: решение — загружаем новое ядро или откатываемся

flowchart TD
  A[Собрать новое ядро] --> B{Успешная сборка?}
  B -- Да --> C[Установить .deb и перезагрузить]
  B -- Нет --> D[Исправить ошибки сборки]
  C --> E{Загрузка успешна?}
  E -- Да --> F[Завершено]
  E -- Нет --> G[Загрузиться со старого ядра, проанализировать логи]
  G --> D

Безопасность и примечания по совместимости:

  • Если вы используете нестандартные драйверы (особенно закрытыe), убедитесь в совместимости с новой версией ядра.
  • Для серверов рекомендуется тестировать сборку в тестовой среде перед продакшеном.

8 Ссылки

Краткое резюме:

  • Используйте текущее .config как основу.
  • make menuconfig для настройки.
  • Собирайте через make-kpkg, устанавливайте dpkg -i.
  • При проблемах — загрузитесь со старого ядра и анализируйте логи.

Важно: всегда имейте план отката и резервную копию конфигураций загрузчика и /boot.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро