Об этом проекте

sd-boot устанавливает ядра Linux и EFI-программы в загрузочный раздел с помощью systemd kernel-install. Согласно README, это обеспечивает систематический способ установки или удаления загружаемого ПО из загрузочного раздела. kernel-install использует $BOOT для обозначения раздела или его точки монтирования, обычно смонтированной в /efi или /boot. В README отмечаются две рекомендуемые схемы: монтирование ESP в /efi с дополнительным разделом XBOOTLDR в /boot (рекомендация kernel-install) или монтирование ESP в /boot. sd-boot и kernel-install работают с обоими подходами, и проект предпочитает первый. Проект предоставляет ALPM-хуки pacman, которые устанавливают или удаляют ядра и EFI-инструменты при установке, обновлении или удалении пакета ядра; установщики, запускаемые этими хуками; инструменты командной строки для администраторов для прямой переустановки или удаления ядер; и плагины kernel-install, используемые для записей загрузчика для не-UKI ядер и EFI-инструментов. Установка ядра означает размещение образа в разделе $BOOT, чтобы его можно было загрузить, поэтому пакеты ядра должны размещать образы ядра только в /usr, как и загружаемые EFI-инструменты, такие как edk2-shell и memtest86+. Документация устанавливается в /usr/share/sd-boot/docs в форматах HTML и PDF, а также доступна на readthedocs. Включены man-страницы для sd-boot-efifs-update, sd-boot-efi-tool-update, sd-boot-find-boot-mounts и sd-boot-kernel-update. В README описаны стандарты кодирования: функциональное тестирование, статический анализ с помощью таких инструментов, как clang-tidy, анализ компилятора, например -fanalyzer, чистые запуски под valgrind, ручная проверка кода и дополнительные проверки ИИ. Конфигурация разделена на конфигурацию kernel-install и конфигурацию sd-boot, обе следуют порядку приоритета Linux с drop-in файлами. sd-boot поставляет /usr/lib/kernel/install.conf.d/010-sd-boot-install.conf с настройками layout=uki, initrd_generator=dracut и uki_generator=ukify, которые можно переопределить в /etc/kernel/install.conf или /etc/kernel/install.conf.d/. README рекомендует придерживаться UKI и dracut. Файлы конфигурации sd-boot находятся в /etc/sd-boot: config.yaml с настройками verb и skip_kernel_plugins; efi-tool.packages со списком имен пакетов EFI-инструментов, таких как memtest86_64-git и edk2-shell; и kernel.packages со списком управляемых пакетов ядра. EFI-инструменты должны предоставлять файл package-name.image, содержащий полный путь к программе .efi; sd-boot включает edk2-shell.image и memtest86_64-git.image. Строки комментариев, начинающиеся с #, разрешены во всех файлах конфигурации. Конфигурация dracut по умолчанию предоставляется в /usr/lib/dracut/dracut.conf.d/010-sd-boot-dracut.conf и может быть переопределена в /etc/dracut.conf.d/010-sd-boot-dracut.conf.