Installkernel
Installkernel は、新しいカーネルのインストールとブートローダの設定の更新を自動的に行う、スクリプトのコレクションです。
パッケージ sys-kernel/installkernel はカーネルのインストールを管理するための 2 通りの方法を提供しています。1 つは Debian に由来する伝統的な installkernel
で、もう 1 つは systemd の kernel-install
です。
systemd USE フラグは、どちらがデフォルトで使用されるかを変更します。このデフォルトは SYSTEMD_KERNEL_INSTALL 環境変数で無視することができます。
Debian の installkernel
このインストール手法を選択するには、systemd USE フラグを無効化するか、環境で SYSTEMD_KERNEL_INSTALL=0 を設定してください。sys-kernel/installkernel に対する追加の USE フラグは、以下の概要に示す通り、追加の自動化プラグインのインストールを制御するために使用されるべきです。
USE flags for sys-kernel/installkernel Gentoo fork of installkernel script from debianutils
dracut
|
Generate an initramfs or UKI on each kernel installation |
efistub
|
EXPERIMENTAL: Update UEFI configuration on each kernel installation |
grub
|
Re-generate grub.cfg on each kernel installation, used grub.cfg is overridable with GRUB_CFG env var |
refind
|
Install a Gentoo icon for rEFInd alongside the (unified) kernel image, used icon is overridable with REFIND_ICON env var |
systemd
|
Use systemd's kernel-install to install kernels, overridable with SYSTEMD_KERNEL_INSTALL env var |
systemd-boot
|
Use systemd-boot's native layout by default |
ugrd
|
Generate an initramfs using UGRD on each kernel installation |
uki
|
Install UKIs to ESP/EFI/Linux for EFI stub booting and/or bootloaders with support for auto-discovering UKIs |
ukify
|
Build an UKI with systemd's ukify on each kernel installation |
sys-kernel/installkernel -systemd
root #
emerge --ask sys-kernel/installkernel
SYSTEMD_KERNEL_INSTALL=0
root #
env-update
伝統的な installkernel は initramfs や Unified カーネルイメージ (UKI) をカーネルイメージと同じ場所にインストールするので、initramfs や Unified カーネルイメージを使用する構成から使用しない構成に切り換えたとき、これらのファイルが残り続けてしまうかもしれません。そのような状況では、これらのファイルが installkernel によって選択されてインストールされてしまうことがないようにするために、これらのファイルを手動で削除する必要があるかもしれません。
カスタマイズ
カスタムプラグインには、例えば initramfs または Unified カーネルイメージ (UKI) を生成するためのカスタムプラグインがありますが、これらは /etc/kernel/preinst.d にインストールすることができます。initramfs プラグインはカーネルイメージと同じ場所に initrd という名前のファイルをインストールするはずです。そして、UKI プラグインはカーネルイメージと同じ場所に uki.efi という名前のファイルをインストールするはずです。
さらに、例えばブートローダの構成設定を更新するためのカスタムプラグインもあり、これらは /etc/kernel/postinst.d にインストールすることができます。
Systemd の kernel-install
このインストール手法を選択するためには、systemd USE フラグを有効化するか、環境で SYSTEMD_KERNEL_INSTALL=1 を設定してください。sys-kernel/installkernel に対する追加の USE フラグは、以下に示す通り、kernel-install
のデフォルト設定を制御します。
sys-kernel/installkernel systemd
root #
emerge --ask sys-kernel/installkernel
SYSTEMD_KERNEL_INSTALL=1
root #
env-update
構成設定
kernel-install の構成は /etc/kernel/install.conf および /usr/lib/kernel/install.conf で行われ、後者よりも前者が優先されます。3 個の構成オプションを設定することができます:
layout=
initrd_generator=
uki_generator=
Debian の installkernel のために追加の自動化プラグインを提供していた sys-kernel/installkernel に対する USE フラグは、systemd の kernel-install のためのデフォルトの install.conf 構成設定ファイルの制御も行います。もちろん、手動で構成設定を変更することもできます。
layout
上流の systemd は Boot Loader Specification type 1 (layout=bls) および type 2 (layout=uki) レイアウトをサポートしています。type 1 レイアウトは systemd-boot によって使用され、type 2 レイアウトは Unified カーネルイメージのために使用されることが想定されており、GRUB、systemd-boot および refind によってサポートされています。installkernel は現時点では refind の構成設定を更新するプラグインを提供していません。
Gentoo は GRUB との併用を意図した、より伝統的なレイアウト (layout=grub) もサポートしています。これは上に記述した Debian の installkernel によって使用されるレイアウトに非常に似ています (が、同一ではありません)。このレイアウトは、より基本的で伝統的なレイアウトが望まれるような他の場合でも使用することができます。Unified カーネルイメージと組み合わせて GRUB を使用するためには、代わりに uki レイアウトを使用してください。
initrd_generator
この設定は initramfs を生成するためにどのプラグインを使用すべきかを制御します。現時点でそのようなプラグインをインストールする唯一のパッケージは、sys-kernel/dracut の Dracut です。この設定は ${KERNEL_INSTALL_INITRD_GENERATOR} としてプラグインに公開されます。
uki_generator
この設定は Unified カーネルイメージを生成するためにどのプラグインを使用すべきかを制御します。現時点でそのようなプラグインを提供するパッケージは 2 つあります: sys-kernel/dracut と systemd (sys-apps/systemd と sys-apps/systemd-utils の ukify フラグを介して) です。この設定は ${KERNEL_INSTALL_UKI_GENERATOR} としてプラグインに公開されます。
カスタマイズ
カスタムプラグインは、例えば initramfs または UKI を生成したり、あるいはブートローダ構成設定を更新したりするために、/etc/kernel/install.d 内にインストールすることができます。initramfs プラグインは ${KERNEL_INSTALL_STAGING_AREA} 上に initrd という名前のファイルとしてインストールすべきです。UKI プラグインは ${KERNEL_INSTALL_STAGING_AREA} 上に uki.efi という名前のファイルとしてインストールすべきです。すべてのプラグインファイルは .install の接尾辞を持たなくてはなりません。/etc/kernel/install.d 内のプラグインは、/usr/lib/kernel/install.d 内にある同名のデフォルトプラグインを無効化します。
関連項目
- GRUB — 多くのシステムアーキテクチャ上で、様々なファイルシステムからカーネルをロードすることができる、マルチブート 2 次ブートローダです。
- systemd-boot — a minimal UEFI boot manager.
- EFI stub — カーネルを設定して、EFI モードで実行中のコンピュータの EFI システムパーティション (ESP) にインストールするための手順を提供します
- initramfs — is used to prepare Linux systems during boot before the init process starts.
- Project:Distribution_Kernel — aims to maintain sys-kernel/*-kernel packages.