Kernel-install

提供: ArchWiki
2025年2月16日 (日) 02:08時点におけるKgx (トーク | 投稿記録)による版 (同期)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

kernel-install(8) は、システム上の Linux カーネルイメージのインストールと管理を効率化するように設計された柔軟なユーティリティです。プラグインシステムを備えており、他のユーティリティとのシームレスな統合を可能にします。これらのプラグインは、Linux カーネルイメージのインストールと管理中に必要となるさまざまなアクションと設定を定義します。そのようなタスクの例としては、ブートローダーエントリの構成、ユニファイドカーネルイメージ (UKI) の生成、または セキュアブート 準拠のためのカーネル署名の容易化などが挙げられます。

ノート: kernel-install 自体は initramfs を生成しませんが、代わりに mkinitcpiodracut のようなプログラムのプラグインを利用します。

インストール

kernel-installsystemd の一部としてパッケージ化されています。統合カーネルイメージには、別の UKI ジェネレーターが指定されていない限り ("主な設定" を参照)、オプションの依存関係である systemd-ukify も必要です。

設定

主な設定

主な設定ファイルは /etc/kernel/install.conf です。これを使用して、使用する レイアウト、つまり、従来の分割されたカーネルイメージと initrd イメージの場合は bls、または ユニファイドカーネルイメージ の場合は uki を設定します。

/etc/kernel/install.conf
layout=bls
ノート: デフォルトでは、mkinitcpioinitrd を生成し (レイアウトが uki に設定されている場合は)、ukifyUKI を生成します。これは initrd_generator= および uki_generator= で変更できます。kernel-install(8) を参照してください。
ヒント: # kernel-install inspect --verbose を使用すると、一部のデフォルトが自動的に使用される理由に関する詳細情報を確認できます。

カーネルコマンドライン

カーネルパラメータ/etc/kernel/cmdline で設定する必要があります。これらは、使用するレイアウトに応じて、UKI に埋め込まれるか、ブートローダー構成に追加されます。/etc/kernel/cmdline が存在しない場合、kernel-install は /usr/lib/kernel/cmdline または /proc/cmdline のパラメータを使用します。/etc/kernel/cmdline にカーネルパラメータを設定しないと、kernel-install が現在実行中のカーネルのパラメータを使用する可能性があります。

プラグイン

カーネルイメージのインストール、アップグレード、または削除時に kernel-install によって使用されるアクティブなプラグインをリストするには、inspect 引数を使用します。

# kernel-install inspect
...
Plugins: /usr/lib/kernel/install.d/50-depmod.install
         /usr/lib/kernel/install.d/50-mkinitcpio.install
         /usr/lib/kernel/install.d/60-ukify.install
         /usr/lib/kernel/install.d/90-loaderentry.install
         /usr/lib/kernel/install.d/90-uki-copy.install
...

利用可能なプラグインは /usr/lib/kernel/install.d/ にあります。

ls /usr/lib/kernel/install.d/
50-depmod.install  50-mkinitcpio.install  60-ukify.install  90-loaderentry.install  90-uki-copy.install  91-sbctl.install

/etc/kernel/install.d/ にある同様の名前のファイルは、デフォルトのファイルをオーバーライドします。

例えば、デフォルトの sbctl プラグイン (セキュアブート 用に新しい UKI に自動的に署名する) を無効にするには、次のようにします。

# ln -sf /dev/null /etc/kernel/install.d/91-sbctl.install

独自の kernel-install プラグインを作成し、/etc/kernel/install.d/ に配置することもできます。

統合カーネルイメージ

ユニファイドカーネルイメージ#kernel-install を参照してください。

使い方

手動で

/usr/lib/modules からカーネルを手動でインストールするには、次の add コマンドを使用します。

# kernel-install add A.B.C-name /usr/lib/modules/A.B.C-name/vmlinuz
ヒント: # kernel-install add-all を使用すると、インストールされているすべてのカーネルを一度に追加できます。

カーネルを手動で削除するには、remove コマンドを使用します。

# kernel-install remove A.B.C-name

自動で

カーネルパッケージがインストールまたは更新されたときに kernel-install とすべてのアクティブなプラグインを自動的にトリガーするには、pacman-hook-kernel-installAUR をインストールします。

同様の機能は、mkinitcpiopacman フック によってすでに提供されていることに注意してください。kernel-install に切り替える場合は、これらを手動でマスクする必要があります。

# ln -s /dev/null /etc/pacman.d/hooks/60-mkinitcpio-remove.hook
# ln -s /dev/null /etc/pacman.d/hooks/90-mkinitcpio-install.hook

元に戻すには、上記で作成したシンボリックリンクを削除するだけです。