このプロジェクトについて

sd-bootは、systemdのkernel-installを使用してLinuxカーネルとEFIプログラムをブートパーティションにインストールします。READMEによると、これによりブートパーティションから起動可能なソフトウェアを体系的にインストールまたは削除する方法が提供されます。 kernel-installは$BOOTを使用してパーティションまたはそのマウントポイントを参照し、通常は/efiまたは/bootにマウントされます。READMEでは2つの推奨レイアウトが記載されています。ESPを/efiにマウントし、オプションでXBOOTLDRパーティションを/bootにマウントする方法(kernel-installの推奨)、またはESPを/bootにマウントする方法です。sd-bootとkernel-installはどちらの方法でも動作し、プロジェクトは前者を好みます。 このプロジェクトは、カーネルパッケージがインストール、更新、または削除されたときにカーネルとEFIツールをインストールまたは削除するpacman ALPMフック、それらのフックによってトリガーされるインストーラー、管理者がカーネルを直接再インストールまたは削除するためのコマンドラインツール、および非UKIカーネルとEFIツール用のローダーエントリに使用されるkernel-installプラグインを提供します。カーネルのインストールとは、起動可能にするためにイメージを$BOOTパーティションに配置することを意味するため、カーネルパッケージはカーネルイメージを/usrにのみ配置する必要があり、edk2-shellやmemtest86+などの起動可能なEFIツールも同様です。 ドキュメントは/usr/share/sd-boot/docsにHTMLとPDFでインストールされ、readthedocsでも利用可能です。sd-boot-efifs-update、sd-boot-efi-tool-update、sd-boot-find-boot-mounts、sd-boot-kernel-updateのmanページが含まれています。 READMEではコーディング標準について説明しています。機能テスト、clang-tidyなどのツールによる静的解析、-fanalyzerなどのコンパイラ解析、valgrindでのクリーンな実行、人間によるコードレビュー、および追加のAIレビューです。 設定はkernel-install設定とsd-boot設定に分かれており、どちらもドロップインファイルによるLinuxの優先順位に従います。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にはmemtest86_64-gitやedk2-shellなどのEFIツールパッケージ名が記載されています。kernel.packagesには管理対象のカーネルパッケージが記載されています。EFIツールは.efiプログラムへのフルパスを含むpackage-name.imageファイルを提供する必要があり、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で上書きできます。