Gentoo. Пакет installkernel

2025-05-22 · 4 мин. для прочтения

Gentoo. Пакет installkernel.

Содержание

1 Общая информация

2 Основные команды

  • Установка ядра:

    kernel-install add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE...]
    
  • Удаление ядра:

    kernel-install remove KERNEL-VERSION
    
  • Просмотр установленных ядер:

    kernel-install list
    
  • Установка всех ядер:

    kernel-install add-all
    
  • Дополнительно можно использовать eclean-kernel.

3 Конфигурация

  • Файлы конфигурации:
    • /etc/kernel/install.conf;
    • /usr/lib/kernel/install.conf;
    • первый имеет приоритет над вторым.
  • Параметра конфигурации:
    layout=
    initrd_generator=
    uki_generator=
    

3.1 layout

  • Поддерживается спецификации загрузчика:

    • тип 1 ( layout=bls );

      • используется с systemd-boot;
      • рекомендуется включить USE-флаг systemd-boot;
      • создает файлы в формате, совместимом с systemd-boot;
    • тип 2 ( layout=uki );

      • предназначен для использования в унифицированных образах ядра и поддерживается grub, systemd-boot, refind;
    • для использования с GRUB ( layout=grub );

      • чтобы использовать GRUB в сочетании с Unified Kernel Images, используйте раскладку uki;
    • если USE-флаги grub , systemd-boot , efistub и uki отключены, используется макет, который обратно совместим с installkernel Debian (layout=compat);

      • используется по умолчанию при отсутствии других USE-флагов;
      • совместим с традиционным installkernel;
      • обеспечивает обратную совместимость;
      • рекомендуется для систем с нестандартными загрузчиками.
  • Макет uki (включенный USE-флагом uki) имеет приоритет над макетом bls (включенным USE-флагом systemd-boot), который, в свою очередь, имеет приоритет над макетом grub (включенным USE-флагом grub).

3.1.1 compat

  • Макет compat очень похож на макет в традиционном installkernel Debian:
    /boot/initramfs-xyz-gentoo-dist.img            # Если USE=dracut (или другой генератор initramfs)
    /boot/kernel-xyz-gentoo-dist
    

3.1.2 efistub

  • Макет efistub идентичен макету compat, но перемещен в системный раздел EFI для загрузки EFI stub.
  • Образ ядра имеет суффикс .efi:
    /${ESP}/EFI/Gentoo/initramfs-xyz-gentoo-dist.img        # Если USE=dracut (или другой генератор initramfs)
    /${ESP}/EFI/Gentoo/kernel-xyz-gentoo-dist.efi
    

3.1.3 grub

  • Макет grub идентичен макету compat с добавлением grub.cfg:
    /boot/grub/grub.cfg
    /boot/initramfs-xyz-gentoo-dist.img             # Если USE=dracut (или другой генератор initramfs)
    /boot/kernel-xyz-gentoo-dist
    

3.1.4 bls

  • The Bootloader Specification Type 1
  • Используется в systemd-boot:
    /${ESP}/gentoo/xyz-gentoo-dist/initrd            # Если USE=dracut (или другой генератор initramfs)
    /${ESP}/gentoo/xyz-gentoo-dist/linux
    /${ESP}/loader/entries/gentoo-xyz-gentoo-dist.conf
    

3.1.5 uki

  • The Bootloader Specification Type 2:
    /boot/grub/grub.cfg                                 # Если USE=grub
    /${ESP}/EFI/Linux/gentoo-xyz-gentoo-dist.efi
    

3.2 initrd_generator

  • Параметр определяет, какой плагин должен использоваться для генерации initramfs.
  • В настоящее время единственным пакетом, который устанавливает такой плагин, является Dracut из sys-kernel/dracut.
  • Если флаг USE=dracut включён, этот параметр автоматически устанавливается в значение dracut.
  • В противном случае для этого параметра автоматически устанавливается значение none.

3.3 uki_generator

  • Параметр управляет тем, какой плагин следует использовать для генерации унифицированного образа ядра.
  • Пакеты предоставляют такой плагин:
    • sys-kernel/dracut;
    • systemd (через флаг ukify в sys-apps/systemd и sys-apps/systemd-utils).
    • Когда включен флаг USE=ukify, этот параметр автоматически устанавливается в ukify.
    • Когда флаг USE=ukify отключен, но включены флаги USE dracut и uki, этот параметр автоматически устанавливается в dracut.
    • В противном случае этот параметр автоматически устанавливается в none.

4 Особенности

4.1 dracut

4.1.1 hostonly

  • Начиная с версии sys-kernel/dracut-106 значение по умолчанию для параметра hostonly изменилось с отключенного на включенное.
  • hostonly :настройка для Dracut, которая управляет тем, сколько данных будет включено в создаваемый образ initramfs.
  • Когда она отключена, Dracut стремится сгенерировать образ initramfs, загружаемый на любом оборудовании.
  • Когда этот параметр включен, Dracut стремится сгенерировать образ initramfs, содержащий только то, что необходимо для загрузки текущей системы.
  • Настройка hostonly может быть отключена с помощью в /etc/dracut.conf.d/:
    mkdir -p /etc/dracut.conf.d
    echo "hostonly=no" >> /etc/dracut.conf.d/95-no-hostonly.conf
    

5 Сравнение ukify и dracut

5.1 Основные возможности

  • Dracut
    • Создает как UKI (Unified Kernel Image), так и initramfs самостоятельно
    • Имеет встроенный механизм создания initramfs
    • Автоматически генерирует UKI при включении соответствующих флагов
    • Поддерживает автоматическую установку в EFI System Partition
  • Ukify
    • Создает только UKI, требует отдельный initramfs генератор
    • Работает с любым initramfs, созданным сторонними инструментами
    • Требует отдельной настройки initramfs через UgRD или Dracut
    • Более гибкая интеграция с существующими initramfs

5.2 Настройка и конфигурация

  • Dracut
    • Конфигурация в файле /etc/dracut.conf
    • Параметры командной строки ядра задаются в /etc/dracut.conf
    • Для Secure Boot требуются настройки в /etc/dracut.conf
    • Автоматическая генерация UKI при установке ядра
  • Ukify
    • Конфигурация в файле /etc/kernel/uki.conf
    • Параметры командной строки ядра задаются в /etc/kernel/cmdline
    • Для Secure Boot требуются настройки в /etc/kernel/uki.conf
    • Необходимость отдельной настройки initramfs генератора

5.3 Особенности использования

  • Dracut
    • Однофайловая система — все в одном инструменте
    • Автоматическая генерация и установка UKI
    • Встроенная поддержка Secure Boot
    • Простота настройки через единый конфигурационный файл
  • Ukify
    • Модульная система - можно комбинировать с разными initramfs генераторами
    • Более гибкая настройка параметров UKI
    • Интеграция с systemd-specific функциями

5.4 Совместимость и интеграция

  • Dracut
    • Лучше интегрирован с традиционными системами
    • Поддерживает большинство загрузчиков без дополнительной настройки
    • Автоматически определяет и использует существующую конфигурацию
  • Ukify
    • Лучше работает с systemd-based системами
    • Оптимизирован для современных UEFI систем
    • Требует дополнительной настройки при использовании нестандартных initramfs

5.5 Рекомендации по выбору

  • Используйте Dracut, если:

    • Нужна простая и единая система управления UKI и initramfs
    • Важна автоматическая генерация и установка
    • Используется традиционный подход к настройке системы
  • Используйте Ukify, если:

    • Нужна максимальная гибкость в выборе initramfs генератора
    • Важна поддержка Measured Boot
    • Используется современная systemd-based система
    • Требуется интеграция с дополнительными функциями systemd
Дмитрий Сергеевич Кулябов
Authors
Профессор кафедры теории вероятностей и кибербезопасности
Мои научные интересы включают физику, администрирование Unix и сетей.