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

Шаг 5 — Сборка ядра
Чтобы собрать пакет ядра в формате RPM, выполните в каталоге исходников команду:
make rpm
Сборка ядра может занять от нескольких минут до нескольких часов в зависимости от конфигурации ядра и скорости процессора. Наблюдайте за выводом компилятора на предмет ошибок. Если процесс завершился успешно, в результате появятся два типа пакетов: исходный SRC.RPM и бинарный RPM.
Важно: убедитесь, что у вас достаточно свободного места в /usr/src и в /boot, а также что установлены зависимости для сборки (gcc, make, rpm-build и т.д.).
Шаг 6 — Установка нового ядра
После успешной сборки пакеты разместятся в следующих каталогах:
Исходный пакет: /usr/src/rpm/SRPMS/
Чтобы увидеть его имя, выполните:
ls -l /usr/src/rpm/SRPMS/
На моей системе это было что-то вроде kernel-2.6.18.3default-1.src.rpm.
Бинарный RPM: /usr/src/rpm/RPMS/<архитектура>/, например /usr/src/rpm/RPMS/i386/ или /usr/src/rpm/RPMS/x86_64/.
Например:
ls -l /usr/src/rpm/RPMS/i386/
В моём случае пакет назывался kernel-2.6.18.3default-1.i386.rpm.
Установите RPM-пакет ядра (в примере для i386):
cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm
Преимущества RPM: вы можете перенести этот rpm на другие Mandriva-системы и установить его там без повторной компиляции.
Далее создайте initrd (ramdisk) для нового ядра — без него система, скорее всего, не загрузится:
mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default
Примечание: имя initrd и версия ядра должны совпадать с тем, что будет указано в конфигурации загрузчика.
Шаг 7 — Настройка загрузчика LILO
Теперь нужно обновить конфигурацию загрузчика LILO так, чтобы при перезагрузке система загружалась с нового ядра.
Сначала посмотрите содержимое каталога /boot, чтобы убедиться в наличии vmlinuz- и initrd-файлов:
ls -l /boot
Обычно имена начинаются с vmlinuz- и initrd-. Запомните точные имена, например vmlinuz-2.6.18.3-default и initrd-2.6.18.3-default.img.
Отредактируйте /etc/lilo.conf. Найдите рабочие stanza (блоки) для существующих ядер и используйте один из них как образец для нового блока: замените строки image и initrd на новые пути и поставьте новый блок выше остальных. Обязательно задайте уникальный label (например linux-2.6.18.3-default) и укажите тот же label в строке default, если вы хотите, чтобы новый вариант был загружен по умолчанию.
Запустите редактор:
vi /etc/lilo.conf
Ниже приведён пример конфигурации до добавления нового блока (оставлено без изменений, только перевод комментариев не требуется в конфиге):
# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file
default="linux"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz
label="linux"
root=/dev/sda6
initrd=/boot/initrd.img
append=" resume=/dev/sda5 splash=silent"
vga=788
image=/boot/vmlinuz
label="linux-nonfb"
root=/dev/sda6
initrd=/boot/initrd.img
append=" resume=/dev/sda5"
image=/boot/vmlinuz
label="failsafe"
root=/dev/sda6
initrd=/boot/initrd.img
append=" failsafe resume=/dev/sda5"
А так — после добавления нового stanza (обратите внимание на default и label):
# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file
default="linux-2.6.18.3-default"
boot=/dev/sda
map=/boot/map
keytable=/boot/us.klt
menu-scheme=wb:bw:wb:bw
compact
prompt
nowarn
timeout=100
message=/boot/message
image=/boot/vmlinuz-2.6.18.3-default
label="linux-2.6.18.3-default"
root=/dev/sda6
initrd=/boot/initrd-2.6.18.3-default.img
append=" resume=/dev/sda5 splash=silent"
vga=788
image=/boot/vmlinuz
label="linux"
root=/dev/sda6
initrd=/boot/initrd.img
append=" resume=/dev/sda5 splash=silent"
vga=788
image=/boot/vmlinuz
label="linux-nonfb"
root=/dev/sda6
initrd=/boot/initrd.img
append=" resume=/dev/sda5"
image=/boot/vmlinuz
label="failsafe"
root=/dev/sda6
initrd=/boot/initrd.img
append=" failsafe resume=/dev/sda5"
После сохранения конфигурации выполните команду записи загрузчика:
lilo
Если lilo завершился без ошибок, перезагрузите систему:
shutdown -r now
После загрузки проверьте текущую версию ядра:
uname -r
Ожидаемый вывод, например:
2.6.18.3-default
Если система не загружается с новым ядром, при старте в меню LILO выберите старую запись ядра и загрузитесь с неё. На экране меню LILO вы увидите варианты загрузки — выберите старый label для восстановления рабочей системы.
Не забудьте: после исправления конфигурации или удаления проблемного stanza снова выполнить:
lilo
и затем перезагрузиться.
Шаг 8 — Полезные ссылки
- Mandriva: http://www.mandriva.com
- The Linux Kernel Archives: http://www.kernel.org
Краткая методология (шаги в цифрах)
- make rpm — собрать RPM-пакет.
- Найти .src.rpm и .rpm в /usr/src/rpm/SRPMS/ и /usr/src/rpm/RPMS/<арх>/.
- rpm -ivh
— установить пакет. - mkinitrd — создать initrd для новой версии.
- Обновить /etc/lilo.conf: добавить stanza, задать уникальный label и при необходимости изменить default.
- lilo — записать загрузчик.
- reboot и uname -r — проверка.
Чек-лист администратора
- Проверить свободное место в /usr/src и /boot
- Сохранить копию /etc/lilo.conf (например /etc/lilo.conf.bak)
- Убедиться, что установлены сборочные зависимости
- Сохранить старые vmlinuz и initrd (резервная копия в /boot)
- После изменений выполнить lilo и проверить его вывод на ошибки
- Иметь под рукой LiveCD/резервный носитель для восстановления в случае неудачной загрузки
Runbook: что делать, если система не загружается
- При загрузке в меню LILO выбрать старую запись (label) и загрузиться.
- Посмотреть /var/log/messages и dmesg на предмет ошибок модуля/файловой системы.
- Восстановить рабочую конфигурацию /etc/lilo.conf из резервной копии, удалить проблемный stanza.
- Выполнить lilo и перезагрузиться.
- Если проблема в модуле, пересобрать ядро с отключением проблемного драйвера или собрать модуль отдельно.
Важно: сохраняйте резервные копии конфигураций перед изменениями.
Альтернативные подходы и когда они подходят
- Использовать GRUB вместо LILO — рекомендовано на современных системах: гибкая работа с именами ядра, поддержка UUID для root.
- Использовать динамическую установку модулей (DKMS) для поддержки внешних модулей без перекомпиляции всего ядра.
- На дистрибутивах, отличных от Mandriva, механизм сборки RPM и расположение пакетов может отличаться — используйте упаковочные утилиты конкретного дистрибутива.
Критерии приёмки
- Система загружается с новым ядром без ошибок.
- uname -r показывает ожидаемую версию.
- Все критичные службы запускаются и работают нормально (network, storage, db и т.д.).
- При обнаружении проблем возможно быстро переключиться на старое ядро через LILO.
Однострочный глоссарий
- initrd — начальный RAM-диск, загружаемый перед основным образом ядра; содержит модули и скрипты для монтирования root-файловой системы.
Примечания по безопасности и совместимости
- Всегда проверяйте цифровую подпись пакетов и целостность, если пакеты распространяются между машинами.
- Новое ядро может менять ABI для модулей; убедитесь, что проприетарные драйверы (например графические или RAID) совместимы с новой версией.
Итог
Следуйте описанным шагам: сборка make rpm, установка rpm, создание initrd, обновление /etc/lilo.conf и выполнение lilo. Держите резервные копии и план отката — это сократит время восстановления в случае ошибок.
Похожие материалы

Исправление ошибки устройства в Windows

Просмотр писем в простом тексте — Gmail, Outlook, Thunderbird

Как отменить подписку Midjourney — инструкция

Фирменный AR‑фильтр для Instagram — руководство

Как включить тёмную тему в Google Search
