Installkernel

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Installkernel and the translation is 100% complete.
Resources
Other languages:

Installkernel は、新しいカーネルのインストールとブートローダの設定の更新を自動的に行う、スクリプトのコレクションです。

パッケージ sys-kernel/installkernel はカーネルのインストールを管理するための 2 通りの方法を提供しています。1 つは Debian に由来する伝統的な installkernel で、もう 1 つは systemdkernel-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 initrd 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
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

ファイル /etc/portage/package.use/installkernel
sys-kernel/installkernel -systemd
root #emerge --ask sys-kernel/installkernel
ファイル /etc/env.d/99no-systemd-kernel-install
SYSTEMD_KERNEL_INSTALL=0
root #env-update
メモ
伝統的な installkernelinitramfsUnified カーネルイメージ (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 のデフォルト設定を制御します。

ファイル /etc/portage/package.use/installkernel
sys-kernel/installkernel systemd
root #emerge --ask sys-kernel/installkernel
ファイル /etc/env.d/99systemd-kernel-install
SYSTEMD_KERNEL_INSTALL=1
root #env-update

構成設定

kernel-install の構成は /etc/kernel/install.conf および /usr/lib/kernel/install.conf で行われ、後者よりも前者が優先されます。3 個の構成オプションを設定することができます:

ファイル /etc/kernel/install.conf
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/dracutDracut です。この設定は ${KERNEL_INSTALL_INITRD_GENERATOR} としてプラグインに公開されます。

uki_generator

この設定は Unified カーネルイメージを生成するためにどのプラグインを使用すべきかを制御します。現時点でそのようなプラグインを提供するパッケージは 2 つあります: sys-kernel/dracutsystemd (sys-apps/systemdsys-apps/systemd-utilsukify フラグを介して) です。この設定は ${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 内にある同名のデフォルトプラグインを無効化します。

関連項目