---
title: ブートマネージャーの設定
description: ブートマネージャーの設定とカーネルパラメーターの指定方法
---

## systemd-boot

systemd-boot の設定ファイルは2種類あります。systemd-boot 自体の設定は `/boot/loader/loader.conf`、各カーネルエントリの設定は `/boot/loader/entry` にあります。

### ローダーの設定

この設定ファイルでは systemd-boot のデフォルトエントリとタイムアウトを変更できます。

```shell
# /boot/loader/loader.conf

default @saved
timeout 5
#console-mode keep # このオプションでコンソールの解像度を指定できます
```

### カーネルコマンドラインの設定

CachyOS では systemd-boot をかんたんに設定できるツール [`sdboot-manage`](https://github.com/CachyOS/CachyOS-PKGBUILDS/tree/master/systemd-boot-manager) を用意しています。このツールではグローバルなカーネルコマンドラインの設定ができます。`sdboot-manage` の設定ファイルは `/etc/sdboot-manage.conf` にあります。

`/etc/sdboot-manage.conf` の `LINUX_OPTIONS=` の行を編集してカーネルパラメーターを変更することができます。

```shell
# /etc/sdboot-manage.conf
LINUX_OPTIONS="zswap.enabled=0 nowatchdog quiet splash"
```

変更後、以下のコマンドですべての systemd-boot エントリを再生成してください。

```shell
sudo sdboot-manage gen
```

## rEFInd

[systemd-boot](/ja/configuration/boot_manager_configuration#systemd-boot) と同様に、rEFInd にも2つの設定ファイルがあります。`boot/efi/EFI/refind` にある `refind.conf` は主に rEFInd の動作を変更するためのファイルで、`/boot/refind_linux.conf` はブートオプションの管理に使います。`refind.conf` にはすべてのオプションを説明する詳細なコメントが記載されています。

### カーネルコマンドラインの設定

カーネルパラメーターをコマンドラインに渡すには、`/boot/refind_linux.conf` の "Boot using default options" を編集してください。

```shell
# /boot/refind_linux.conf

"Boot using default options"     "root=PARTUUID=1cb353ec-7f03-4820-8b4b-03baf53a208f rw zswap.enabled=0 nowatchdog quiet splash"
```

両方の設定ファイルへの変更は保存後すぐに反映されます。変更を保存するためのコマンドを実行する必要はありません。

## GRUB

[systemd-boot](/ja/configuration/boot_manager_configuration#systemd-boot) や [rEFInd](/ja/configuration/boot_manager_configuration#refind) とは異なり、GRUB の設定ファイルは `/etc/default/grub` のひとつだけです。このファイルには各オプションの説明が記載されています。

### GRUB ブートメニューを非表示にする

GRUB メニューを非表示にするには、以下のオプションを設定してください。

```shell
# /etc/default/grub

GRUB_TIMEOUT='0'
GRUB_TIMEOUT_STYLE=hidden
```

この設定が有効でも ESC を押して GRUB プロンプトにアクセスし、`normal` または `exit` を実行しておなじみの GRUB ブートメニューに戻ることができます。

### カーネルコマンドラインの設定

GRUB でカーネルパラメーターをコマンドラインに渡すには、`/etc/default/grub` の `GRUB_CMDLINE_LINUX_DEFAULT` を編集してください。

```shell
# /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT='nowatchdog zswap.enabled=0 quiet splash'
```

GRUB 設定ファイルを変更するたびに、以下のコマンドで設定を再生成する必要があります。

```shell
sudo grub-mkconfig -o /boot/grub/grub.cfg
```

### BTRFS スナップショットからのブート

:::note
8月リリース以前の CachyOS をインストールした場合は、BTRFS スナップショットブート機能を手動で有効にする必要があります。

8月リリース以降はデフォルトで有効になっているため、この手順はスキップしても問題ありません。
:::

この機能を有効にするには grub-btrfs-support パッケージをインストールしてください。

```sh
sudo pacman -S grub-btrfs-support
```

このパッケージは BTRFS スナップショットを自動検出して GRUB メニューに追加するスクリプトとフックをインストールします。

インストール後、Limine と同様にスナップショットが GRUB メニューに表示されます。


## Limine

Limine はシンプルな設定で知られるモダンなブートローダーです。このガイドでは基本的な使い方を説明します。

設定は主にメニュー設定用の `/boot/limine.conf` (または EFI システムパーティション内) と、カーネルパラメーター用の `/etc/default/limine` で行います。

### ブートメニューの設定

このファイルはブートメニューの動作と外観を制御します。保存後すぐに変更が反映されるため、追加のコマンドは不要です。

* **タイムアウト:** デフォルトエントリを自動ブートするまでの待機秒数を設定できます。

  ```shell
  # /boot/limine.conf

  timeout: 5
  ```

* **デフォルトエントリ:** デフォルトでブートするメニューエントリを指定できます。エントリは1から番号が付けられています。設定しない場合のデフォルト値は1です。

  ```shell
  # /boot/limine.conf

  default_entry: 2 # 2番目のエントリをデフォルトでブートする
  ```

  :::tip
   `default_entry` がディレクトリ (例: `/+CachyOS`) を指している場合、自動ブートは無効になります。ディレクトリ内のエントリを自動ブートするには、`default_entry` がその特定のエントリ番号を直接指している必要があります。
  :::

`/boot/limine.conf` の例

```shell
# /boot/limine.conf

timeout: 5
default_entry: 2 # 以下の 'linux-cachyos' エントリを直接指定

/+CachyOS        # エントリ 1: ディレクトリ (/+ でデフォルト展開)
//linux-cachyos  # エントリ 2: 実際のブート可能エントリ
    protocol: linux
    kernel_path: boot():/vmlinuz-linux-cachyos
    cmdline: quiet splash root=UUID=... rw # 基本的なカーネルパラメーター
    module_path: boot():/initramfs-linux-cachyos.img
```

:::note
`boot():/` はブートドライブのルートを指します。
:::

### テーマ

Limine ブートメニューの見た目をカスタマイズできます。

* **壁紙:** 背景を設定できます。BMP, PNG, JPEG 形式に対応しています。

  ```shell
  # /boot/limine.conf

  wallpaper: boot():/splash.png
  wallpaper_style: stretched # オプション: "stretched", "tiled", "centered"
  backdrop: 000000           # スタイルが "centered" の場合の背景色 (RRGGBB 16進数)
  ```

* **フォント:** [カスタムフォントファイル](https://github.com/viler-int10h/vga-text-mode-fonts)を使用してサイズを調整できます。

  ```shell
  # /boot/limine.conf

  term_font: boot():/custom_font.F16
  term_font_scale: 2x2 # フォントサイズをスケーリング、高解像度ディスプレイに便利
  ```

* **カラー:** ターミナルのテキストと背景色を変更できます。

  ```shell
  # /boot/limine.conf

  term_background: 80000000 # 例: 半透明の黒 (AARRGGBB)
  # term_foreground などほかのカラーオプションも利用可能
  ```

### カーネルコマンドの設定

CachyOS では、Limine ブートメニューのカーネルエントリは**自動的に管理されます**。カーネルをインストール・削除すると、`limine-mkinitcpio-hook` がバックグラウンドで `limine-entry-tool` を使ってブートエントリを更新します。

エントリは自動管理されますが、カーネルのブート時に渡される**カーネルパラメーター** (カーネルコマンドライン) を設定することができます。

1. **設定ファイルを編集する:** `/etc/default/limine` の `KERNEL_CMDLINE` 変数を編集してください。すべてのカーネルに適用するデフォルトパラメーターや、特定のカーネル名 (例: `linux-cachyos`) 向けのパラメーターを設定できます。

   ```shell
   # /etc/default/limine

   # ほとんどのカーネルに適用できるデフォルトパラメーター
   KERNEL_CMDLINE[default]="quiet splash rd.udev.log_priority=3"

   # 'linux-cachyos' カーネル専用のパラメーター
   KERNEL_CMDLINE["linux-cachyos"]="quiet splash mitigations=off"

   # フォールバックエントリ用のパラメーター (生成される場合)
   # KERNEL_CMDLINE[fallback]="..."
   ```

2. **変更を適用する:** `/etc/default/limine` を保存した後、新しいカーネルパラメーターを反映させるために initramfs イメージを再生成して Limine エントリを更新する必要があります。以下のコマンドを実行してください。

   ```bash
   sudo limine-mkinitcpio
   ```

   このコマンドで `limine-mkinitcpio-hook` を含む `mkinitcpio` プロセスを起動し、`/etc/default/limine` の変更が `/boot/limine.conf` のブートエントリに反映できます。

## 関連リンク

* [loader.conf マニュアルページ](https://man.archlinux.org/man/loader.conf.5)
* [rEFInd: ブートマネージャーの設定](https://www.rodsbooks.com/refind/configfile.html)
* [GRUB マニュアル: 設定](https://www.gnu.org/software/grub/manual/grub/grub.html#Configuration)
* [Limine 公式設定ドキュメント](https://github.com/limine-bootloader/limine/blob/v12.x/CONFIG.md)
* [limine-entry-tool プロジェクト](https://gitlab.com/Zesko/limine-entry-tool)
