kernel-install (Українська)
kernel-install(8) - утиліта, призначена для спрощення встановлення та адміністрування образів ядра Linux у системі. Вона має систему плагінів, що дозволяє легко інтегруватися з іншими утилітами. Ці плагіни визначають низку дій і налаштувань, необхідних під час встановлення та керування образами ядра Linux, наприклад налаштування завантажувача, створення об'єднаного образа ядра або автоматизація підписів необхідних для Secure Boot.
kernel-install не генерує initramfs самостійно, для цього використовуються відповідні плагіни для mkinitcpio чи dracut.Установка
kernel-install є частиною systemd і постачається разом. systemd-ukify є необов'язковою залежністю необхідною для роботи з об'єднаними образами ядра, якщо не було вказано інший генератор об'єднаних образів (більше в #Основні налаштування).
Налаштування
Основні налаштування
Основні налаштування зберігаються в /etc/kernel/install.conf. Тут можна вказати тип пакування що буде використовуватись, наприклад bls для традиційного варіанта із розділеними ядром та initramfs, чи uki для об'єднаного образа ядра:
/etc/kernel/install.conf
layout=bls
layout=uki). Це можна змінити вказавши параметри initrd_generator= та uki_generator=, дивись kernel-install(8).# kernel-install inspect --verbose щоб побачити чому і які параметри використовуються за замовчуванням.Параметри ядра
Параметри ядра для всіх ядер вказуються за адресою /etc/kernel/cmdline. Їх буде запаковано в об'єднаний образ ядра, або додано до налаштувань завантажувача, відповідно до типу пакування. Якщо файл /etc/kernel/cmdline відсутній, буде використано /usr/lib/kernel/cmdline або /proc/cmdline.
Плагіни
Перелік активних плагінов можна отримати за допомогою аргументу inspect:
# kernel-install inspect
...
Plugins: /usr/lib/kernel/install.d/50-depmod.install
/usr/lib/kernel/install.d/50-mkinitcpio.install
/usr/lib/kernel/install.d/60-ukify.install
/usr/lib/kernel/install.d/90-loaderentry.install
/usr/lib/kernel/install.d/90-uki-copy.install
...
Доступні плагіни знаходяться за адресою /usr/lib/kernel/install.d/:
ls /usr/lib/kernel/install.d/
50-depmod.install 50-mkinitcpio.install 60-ukify.install 90-loaderentry.install 90-uki-copy.install 91-sbctl.install
Файли з такими ж назвами у /etc/kernel/install.d/ замінять файли за замовчуванням.
Наприклад, для того щоб вимкнути плагін sbctl, що автоматично підписує об'єднані образи ядра для Secure Boot, потрібно зробити наступне посилання:
# ln -sf /dev/null /etc/kernel/install.d/91-sbctl.install
Ви також можете створити власні плагіни для kernel-install і покласти їх в /etc/kernel/install.d/.
Об'єднані образа ядра
Зверніться до Unified kernel image#kernel-install
Використання
Вручну
Для установки ядра з /usr/lib/modules використовується аргумент add:
# kernel-install add A.Б.В-назва /usr/lib/modules/A.Б.В-назва/vmlinuz
# kernel-install add-all для того щоб додати всі установлені ядра за раз.Для видалення ядра використовується аргумент remove:
# kernel-install remove A.Б.В-назва
Автоматично
Щоб автоматично виконати kernel-install після установки чи оновлення ядра можна установити пакунок pacman-hook-kernel-installAUR.
# ln -s /dev/null /etc/pacman.d/hooks/60-mkinitcpio-remove.hook # ln -s /dev/null /etc/pacman.d/hooks/90-mkinitcpio-install.hook
Щоб повернути назад просто видаліть ці два посилання.