「Booster」の版間の差分
(→ブートローダーの設定: 同期) |
(initramfsのサイズに関する設定を追加→設定) |
||
| 74行目: | 74行目: | ||
Booster の設定が完了したら、{{ic|/boot}} にある Booster images を更新する必要があります。イメージは、{{ic|booster build booster-foo.img}} を使用して手動で生成するか、インストールされているすべてのカーネルを反復処理してカーネルごとに Booster イメージを生成する便利なスクリプト {{ic|/usr/lib/booster/regenerate_images}} もあります。 |
Booster の設定が完了したら、{{ic|/boot}} にある Booster images を更新する必要があります。イメージは、{{ic|booster build booster-foo.img}} を使用して手動で生成するか、インストールされているすべてのカーネルを反復処理してカーネルごとに Booster イメージを生成する便利なスクリプト {{ic|/usr/lib/booster/regenerate_images}} もあります。 |
||
| + | |||
| + | === モジュールを除外する === |
||
| + | |||
| + | {{ic|-}}によってモジュールをinitramfsから除外できます。 |
||
| + | |||
| + | 起動時間を短縮するために、[[Mkinitcpio/Initramfs_%E3%81%AE%E6%9C%80%E5%B0%8F%E5%8C%96]] のように手動で全てのモジュールを選ぶ例として、 |
||
| + | {{hc|/etc/booster.yaml| |
||
| + | modules: -*,btrfs,nvme |
||
| + | }} |
||
| + | |||
| + | === モジュールをstripする === |
||
| + | |||
| + | モジュールをstripする事でinitramfsのサイズを減らせます。 |
||
| + | {{hc|/etc/booster.yaml| |
||
| + | strip: true |
||
| + | }} |
||
| + | |||
| + | {{Note|この設定は[[Unified_Extensible_Firmware_Interface/%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%83%96%E3%83%BC%E3%83%88]]が有効なときに有効化される、[[セキュリティ#カーネルロックダウンモード]]に必要な署名を消すかも知れません。}} |
||
== ブートローダーの設定 == |
== ブートローダーの設定 == |
||
2025年3月15日 (土) 03:51時点における版
Booster は高速な initramfs ジェネレータで、mkinitcpio や dracut と似ています。 Booster は distri プロジェクト に着想を得ており、小型で高速な init イメージを生成することを目指しています。
Booster は、initramfs イメージの生成を担当する /usr/bin/booster ユーザー空間ツールを提供します。生成されたイメージは、デフォルトでは /boot/ にあります。
目次
インストール
booster-gitAUR パッケージをインストールしてください。パッケージのインストールフックによって initramfs イメージが生成されます (インストールされているカーネル (例: linux, linux-lts) ごとにひとつずつ)。イメージは /boot ディレクトリに配置されます:
$ ls -lh /boot/booster*
-rwxr-xr-x 1 root root 4.0M Dec 16 16:20 /boot/booster-linux.img
また、イメージは手動で生成することもできます:
$ booster -output mybooster.img
設定
Booster ジェネレータの設定は /etc/booster.yaml にあります。設定ファイルがない場合は、デフォルトの設定(ホスト固有の画像、ネットワークなし)が使用されます。
設定ファイルを使用することで、デフォルトの動作を上書きすることができます。詳しくは booster(1) § CONFIG FILE を参照してください。
モジュールの早期ロード
いくつかのカーネルモジュールは、initramfs の段階で早期にロードされる必要がある場合があります。
例えば、nvidia モジュールをロードする必要がある場合、以下の設定を使用します:
/etc/booster.yaml
modules_force_load: nvidia
そして、booster イメージの再生成 を実行します。
暗号化
Booster は、Clevis のような LUKS ベースのフルディスク暗号化をすぐに使用できるようにサポートしています。ジェネレーターには追加の設定は必要ありません。ただし、initramfs の場合は、ルートが存在する LUKS パーティションに関する情報を追加する必要があります。これは、rd.luks.uuid=LUKSUUID または rd.luks.name=LUKSUUID=LUKSNAME カーネルパラメータ のいずれかを使用して行われます。LUKSUUID は、Booster によってロックを解除する必要があり、暗号化された LUKS パーティションの UUID を指定します。booster(1) § UUID パラメータ マニュアルでは、UUID に引用符を含めないことを推奨しています。LUKSNAME は、ロック解除されたパーティションの名前を指定します (/dev/mapper/LUKSNAME のように) 関連オプションについては、booster(1) § BOOT TIME KERNEL PARAMETERS を参照してください。
イメージの再構築は必要ありません。ブートローダーの設定が完了したら、コンピューターを再起動します。その後、起動時に暗号化されたルートパーティションのパスワードを求める Enter passphrase for YOURROOT: プロンプトが表示されます。
systemd スタイルのバインディング
Booster はパーティションもサポートします bound with systemd systemd-fido2 や systemd-tpm2 など。
'systemd-fido2' を使用する場合は、libfido2 パッケージをインストールし、次の設定を使用してイメージに fido2-assert を追加してください。
/etc/booster.yaml
extra_files: fido2-assert
booster イメージの再生成します Booster は起動中にこの設定を検出し、現在の YubiKey を使用してドライブのロックを解除します。
/etc/booster.yaml
modules_force_load: usbhid,hid_sensor_hub extra_files: fido2-assert
booster イメージの再生成
Booster の設定が完了したら、/boot にある Booster images を更新する必要があります。イメージは、booster build booster-foo.img を使用して手動で生成するか、インストールされているすべてのカーネルを反復処理してカーネルごとに Booster イメージを生成する便利なスクリプト /usr/lib/booster/regenerate_images もあります。
モジュールを除外する
-によってモジュールをinitramfsから除外できます。
起動時間を短縮するために、Mkinitcpio/Initramfs_の最小化 のように手動で全てのモジュールを選ぶ例として、
/etc/booster.yaml
modules: -*,btrfs,nvme
モジュールをstripする
モジュールをstripする事でinitramfsのサイズを減らせます。
/etc/booster.yaml
strip: true
ブートローダーの設定
イメージを生成したら、次にブートローダーを設定します。
マイクロコードの更新
mkinitcpio や dracut と異なり、Booster は 生成されたイメージにマイクロコードの更新を含めることをサポートしていません。 詳細については マイクロコード#別個のマイクロコード initramfs ファイルを使う を参照し、適切なマイクロコードイメージを追加で読み込むようにブートローダーを設定する方法を確認してください。
rEFInd
すでに 自動検出 に依存した設定になっている場合、追加の設定変更は必要ありません。rEFInd は initrd files named booster* をサポートしています。
initramfs のパスを refind.conf や 手動でブートエントリを記述する する場合、正しいファイル名を使っているか確認してください。例えば booster-linux.img の代わりに initramfs-linux.img とします。
systemd-boot
新しい initramfs イメージを systemd-boot で使うには以下のようにブートローダーエントリを作成します:
/boot/loader/entries/booster.conf
title Arch Linux with booster linux /vmlinuz-linux initrd /intel-ucode.img initrd /booster-linux.img options root=UUID=08f83949-bcbb-47bb-bc17-089aaa59e17e rw
上記でルートファイルシステムは UUID=08f83949-bcbb-47bb-bc17-089aaa59e17e と指定しています。blkid /dev/ROOTDEVICE を実行して、あなたのデバイスの UUID を確認してください。
トラブルシューティング
デバッグ
Booster が上手く動かない場合、デバッグ出力を有効にすることで何が起こっているか情報を得ることができます:
- ジェネレータのデバッグは
-debugコマンドラインフラグを使ってください:booster -debug - init のデバッグは
booster.debug=1カーネルパラメータ が存在します。
Booster 自体に問題があると思われる場合は、GitHub でチケットを作成してください
Booster ジェネレータが "too many open files" エラーで失敗する
もし strip と universal を有効にしていて /usr/lib/modules/glue_helper.ko: pipe2: too many open files というエラーが出た場合は、プロセスごとのオープンファイルの上限を上げる必要があります。limits.conf#nofile を参照してください。