Jump to content

kernel-install (Українська)

From ArchWiki

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
Примітка: За замовчуванням mkinitcpio буде генерувати initrd, а ukify буде генерувати об'єднаний образ ядра (якщо 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.

Примітка: mkinitcpio впроваджує схожий функціонал своїми pacman hooks. Для уникнення подвоєння їх треба вимкнути:
# ln -s /dev/null /etc/pacman.d/hooks/60-mkinitcpio-remove.hook
# ln -s /dev/null /etc/pacman.d/hooks/90-mkinitcpio-install.hook

Щоб повернути назад просто видаліть ці два посилання.