「Kernel-install」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎See also: 翻訳)
(同期)
 
2行目: 2行目:
 
[[Category:ブートプロセス]]
 
[[Category:ブートプロセス]]
 
[[en:Kernel-install]]
 
[[en:Kernel-install]]
  +
{{Related articles start}}
{{man|8|kernel-install}} は、[[カーネル]] を自動的に移動させるためのスクリプトです。
 
  +
{{Related|ユニファイドカーネルイメージ}}
それぞれの [[initramfs]] イメージをブートパーティションに配置する。
 
  +
{{Related articles end}}
(通常は {{ic|/boot}} または {{ic|/efi}} にマウントされます。) スクリプトシステムを使用しており、機能を拡張することができます。
 
  +
また、インストールされたカーネルと initramfs に対して [[systemd-boot]] のブートエントリを作成します。
 
  +
{{man|8|kernel-install}} は、システム上の Linux カーネルイメージのインストールと管理を効率化するように設計された柔軟なユーティリティです。プラグインシステムを備えており、他のユーティリティとのシームレスな統合を可能にします。これらのプラグインは、Linux カーネルイメージのインストールと管理中に必要となるさまざまなアクションと設定を定義します。そのようなタスクの例としては、ブートローダーエントリの構成、[[ユニファイドカーネルイメージ]] (UKI) の生成、または [[セキュアブート]] 準拠のためのカーネル署名の容易化などが挙げられます。
  +
  +
{{Note|{{ic|kernel-install}} 自体は initramfs を生成しませんが、代わりに [[mkinitcpio]] や [[dracut]] のようなプログラムのプラグインを利用します。}}
   
 
== インストール ==
 
== インストール ==
   
  +
'''kernel-install''' は {{Pkg|systemd}} の一部としてパッケージ化されています。[[ユニファイドカーネルイメージ#kernel-install|統合カーネルイメージ]]には、別の UKI ジェネレーターが指定されていない限り ("[[#設定|主な設定]]" を参照)、オプションの依存関係である {{Pkg|systemd-ukify}} も必要です。
''kernel-install'' は {{Pkg|systemd}} の一部であり、同梱されています。
 
   
== 使い方 ==
+
== 設定 ==
   
  +
=== 主な設定 ===
{{ic|kernel-install}} スクリプトは、initramfs 生成そのものではなく、別のプログラムを使用しています、
 
[[mkinitcpio]] や [[dracut]] などで initramfs を生成してください。initramfs を利用するためには
 
initramfs ジェネレーターを [[インストール]] する必要があります。
 
   
  +
主な設定ファイルは {{ic|/etc/kernel/install.conf}} です。これを使用して、使用する [https://uapi-group.org/specifications/specs/boot_loader_specification/#type-1-boot-loader-specification-entries レイアウト]、つまり、従来の分割されたカーネルイメージと initrd イメージの場合は {{ic|bls}}、または [[ユニファイドカーネルイメージ]] の場合は {{ic|uki}} を設定します。
=== カーネルの追加 ===
 
   
  +
{{hc|/etc/kernel/install.conf|
次のように、{{ic|/usr/lib/modules}} からカーネルをインストールできます。
 
  +
2=layout=bls}}
   
  +
{{Note|1=デフォルトでは、[[mkinitcpio]] が [[Arch ブートプロセス#initramfs|initrd]] を生成し (レイアウトが {{ic|uki}} に設定されている場合は)、[[ユニファイドカーネルイメージ#ukify|ukify]] が [[ユニファイドカーネルイメージ#kernel-install|UKI]] を生成します。これは {{ic|1=initrd_generator=}} および {{ic|1=uki_generator=}} で変更できます。{{Man|8|kernel-install}} を参照してください。}}
# kernel-install add ''A.B.C-name'' /usr/lib/modules/''A.B.C-name''/vmlinuz
 
   
  +
{{Tip|{{ic|# kernel-install inspect --verbose}} を使用すると、一部のデフォルトが自動的に使用される理由に関する詳細情報を確認できます。}}
=== カーネルの削除 ===
 
   
カーネルを削除するには、{{ic|remove}} サブコマンドを使用します。
+
=== カーネルコマンドライン ===
   
  +
[[カーネルパラメータ]] は {{ic|/etc/kernel/cmdline}} で設定する必要があります。これらは、使用するレイアウトに応じて、UKI に埋め込まれるか、ブートローダー構成に追加されます。{{ic|/etc/kernel/cmdline}} が存在しない場合、kernel-install は {{ic|/usr/lib/kernel/cmdline}} または {{ic|/proc/cmdline}} のパラメータを使用します。{{ic|/etc/kernel/cmdline}} にカーネルパラメータを設定しないと、kernel-install が現在実行中のカーネルのパラメータを使用する可能性があります。
# kernel-install remove ''A.B.C-name''
 
   
== トとテクニック ==
+
=== プラグイ===
   
  +
カーネルイメージのインストール、アップグレード、または削除時に {{ic|kernel-install}} によって使用される'''アクティブな'''プラグインをリストするには、{{ic|inspect}} 引数を使用します。
=== Pacman フック ===
 
  +
  +
{{hc|# 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
  +
...
  +
}}
  +
  +
'''利用可能な'''プラグインは {{ic|/usr/lib/kernel/install.d/}} にあります。
  +
  +
{{hc|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}}
  +
  +
{{ic|/etc/kernel/install.d/}} にある同様の名前のファイルは、デフォルトのファイルをオーバーライドします。
  +
  +
例えば、デフォルトの {{pkg|sbctl}} プラグイン (セキュアブート 用に新しい UKI に自動的に署名する) を'''無効にする'''には、次のようにします。
  +
  +
# ln -sf /dev/null /etc/kernel/install.d/91-sbctl.install
  +
  +
独自の {{ic|kernel-install}} プラグインを作成し、{{ic|/etc/kernel/install.d/}} に配置することもできます。
  +
  +
=== 統合カーネルイメージ ===
  +
  +
[[ユニファイドカーネルイメージ#kernel-install]] を参照してください。
  +
  +
== 使い方 ==
  +
  +
=== 手動で ===
  +
  +
{{ic|/usr/lib/modules}} からカーネルを手動でインストールするには、次の {{ic|add}} コマンドを使用します。
  +
  +
# kernel-install add ''A.B.C-name'' /usr/lib/modules/''A.B.C-name''/vmlinuz
  +
  +
{{Tip|{{ic|# kernel-install add-all}} を使用すると、インストールされているすべてのカーネルを一度に追加できます。}}
  +
  +
カーネルを手動で削除するには、{{ic|remove}} コマンドを使用します。
  +
  +
# kernel-install remove ''A.B.C-name''
   
  +
=== 自動で ===
カーネルパッケージの更新時にトリガーされる pacman フックで、そのカーネルを自動的にインストールするには、
 
{{AUR|pacman-hook-kernel-install}} をインストールします。
 
   
  +
カーネルパッケージがインストールまたは更新されたときに {{ic|kernel-install}} とすべてのアクティブなプラグインを自動的にトリガーするには、{{AUR|pacman-hook-kernel-install}} をインストールします。
=== Unified カーネルイメージ ===
 
   
  +
同様の機能は、{{Pkg|mkinitcpio}} の [[pacman フック]] によってすでに提供されていることに注意してください。kernel-install に切り替える場合は、これらを手動でマスクする必要があります。
参照 [[Unified カーネルイメージ#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
   
  +
元に戻すには、上記で作成したシンボリックリンクを削除するだけです。
* {{man|8|kernel-install}}
 

2025年2月16日 (日) 02:08時点における最新版

関連記事

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

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