Kernel-install
関連記事
kernel-install(8) は、システム上の Linux カーネルイメージのインストールと管理を効率化するように設計された柔軟なユーティリティです。プラグインシステムを備えており、他のユーティリティとのシームレスな統合を可能にします。これらのプラグインは、Linux カーネルイメージのインストールと管理中に必要となるさまざまなアクションと設定を定義します。そのようなタスクの例としては、ブートローダーエントリの構成、ユニファイドカーネルイメージ (UKI) の生成、または セキュアブート 準拠のためのカーネル署名の容易化などが挙げられます。
インストール
kernel-install は systemd の一部としてパッケージ化されています。統合カーネルイメージには、別の UKI ジェネレーターが指定されていない限り ("主な設定" を参照)、オプションの依存関係である systemd-ukify も必要です。
設定
主な設定
主な設定ファイルは /etc/kernel/install.conf
です。これを使用して、使用する レイアウト、つまり、従来の分割されたカーネルイメージと initrd イメージの場合は bls
、または ユニファイドカーネルイメージ の場合は uki
を設定します。
/etc/kernel/install.conf
layout=bls
カーネルコマンドライン
カーネルパラメータ は /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
カーネルを手動で削除するには、remove
コマンドを使用します。
# kernel-install remove A.B.C-name
自動で
カーネルパッケージがインストールまたは更新されたときに kernel-install
とすべてのアクティブなプラグインを自動的にトリガーするには、pacman-hook-kernel-installAUR をインストールします。
同様の機能は、mkinitcpio の pacman フック によってすでに提供されていることに注意してください。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
元に戻すには、上記で作成したシンボリックリンクを削除するだけです。