[Linux][system][command] ブートローダ_GRUB Legacy, GRUB 2, grub-install, grub>, grub-mkconfig

# 起動プロセス
```mermaid
graph TD
  A((電源ON))
  A --> B[ファームウェア<br>（BIOS/UEFI）]
  B --> C[パーティション形式<br>（MBR/GPT））]
  C --> D[ブートローダ（GRUB/GRUB2）]
  D --> E[カーネル]
  E --> F[初期化システム（initシステム）]
  F --> G((ログイン画面表示))

  classDef step1 fill:#f2f2f2,stroke:#333,stroke-width:2px;
  classDef step2 fill:#e6f7ff,stroke:#333,stroke-width:2px;
  classDef step3 fill:#e6ffe6,stroke:#333,stroke-width:2px;
  classDef step4 fill:#ffffe6,stroke:#333,stroke-width:2px;
  classDef step5 fill:#ffebcc,stroke:#333,stroke-width:2px;

  class B step1
  class C step2
  class D step3
  class E step4
  class F step5

  B:::step1 -->|ハードウェアの初期化、POST（Power On Self Test）| B
  C:::step2 -->|MBR/GPTによるパーティション情報の読み取り、<br>ブートローダの位置特定| C
  D:::step3 -->|GRUB/GRUB2がカーネルを選択・メモリに読み込む、<br>カーネルを起動| D
  E:::step4 -->|カーネルがシステムリソース（プロセス・メモリ管理など）を初期化、<br>デバイスドライバを読み込む| E
  F:::step5 -->|initシステム（systemdなど）がサービスを開始、<br>ユーザーのログイン画面を表示| F
```

# grub-installコマンド
~~~terminal
# grub-install /dev/sda
~~~

# grub>コマンド, ブートアプション
ブートローダの設定ファイルに記載されていないオプションを、起動オプションとして起動プロンプトで指定する

~~~terminal:GRUB Legacy
# grub> kernel カーネルイメージ [ブートオプション]
~~~

~~~terminal:GRUB 2
# grub> linux カーネルイメージ [ブートオプション]
~~~

| オプション | 説明 |
|:--|:--|
| `root=デバイス名` | ルートファイルシステムを特定のデバイス（例: `root=/dev/sda1`）に設定する |
| `init=パス` | 指定したシェル（例: `init=/bin/sh`）を`init`の代わりに起動する |
| `quiet` | 起動時の詳細なメッセージ（ログ出力）を非表示にする |
| `s`<br>`single` | シングルユーザーモード（メンテナンスモード）で起動する |
|`数字(0-6)`|指定したランレベルで起動(GRUB 2の場合)|


# GRUB Legacy
## 概要
- ストレージ（HDDなど）から、OSのカーネルイメージをメモリにロードし、カーネルを実行する
- バージョン`0.9x`系
- パーティションは`0`から数える
    - 例：1番目のディスクの1番目のパーティション　→　root (hd0,0)

## 設定ファイル
- 設定ファイルは`/boot/grub/grub.conf`または`/boot/grub/menu.lst`
- 変更内容を反映させるコマンドはない

|`/boot/grub/menu.lst`の<br>パラメータ|説明|
|:--|:--|
|timeout|メニューを表示している時間（秒）|
|default||
|title|メニューに表示するエントリ名を指定する|
|root|ルートパーティションを指定する|
|kernel||
|makeactive||
|chainloader||
|hiddenmenu|起動時に選択メニューを表示しない|

# GRUB 2
## 概要
- ストレージ（HDDなど）から、OSのカーネルイメージをメモリにロードし、カーネルを実行する
- バージョン`1.9x`系
- パーティションは`1`から数える
    - 例：1番目のディスクの1番目のパーティション　→　set root=(hd0,1)

## 設定ファイル
- 設定ファイルは`/boot/grub/grub.cfg`<INS>**←直接編集できない**</INS>
- `/etc/default/grub`または`/etc/grub.d`で設定、`grub-mkconfig`コマンドで実行

### `/etc/default/grub`
- メニューの表示時間やデフォルトで起動するOSなどの指定

|`/etc/default/grub`の<br>パラメータ|説明|
|:--|:--|
|GRUB_TIMEOUT|メニューを表示している時間（秒）|
|GRUB_DEFAULT||
|GRUB_CMDLINE_LINUX||

### `/etc/grub.d`
- カーネルイメージ、ルートパーティション、モジュールの指定

|`/etc/grub.d`の<br>パラメータ|説明|
|:--|:--|
|menuentry|メニューに表示するエントリ名を指定する|
|insmod|ロードするモジュールを指定する|
|set|設定項目を指定する|



# Ping-t


ブートアプション
- [2993_s, single, 1](https://mondai.ping-t.com/question_subjects/31/question_sessions/32400859/progressing_questions/496444388)
- [3384_ブートオプション, linux](https://mondai.ping-t.com/question_subjects/31/question_sessions/31357762/progressing_questions/480478552)
- [3385_ブートオプション, linux](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962315)
- [3628_ブートオプション, linux](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962311)
- [3663_ブートオプション, kernel](https://mondai.ping-t.com/question_subjects/31/question_sessions/33010346/progressing_questions/505591886/edit?no_selection=false)

GRUB Legacy, GRUB 2
- [3656_GRUB Legacy, GRUB 2, パーティションの数え方](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490495)

GRUB Legacy
- [3422_変更内容を反映させるコマンド](https://mondai.ping-t.com/question_subjects/31/question_sessions/31357762/progressing_questions/480478551)

GRUB 2
- [3590_変更内容を反映させるコマンド_grub-mkconfig](https://mondai.ping-t.com/question_subjects/31/question_sessions/32477286/progressing_questions/497681661)
- [3677_GRUB 2, /etc/default/grub, /etc/grub.dg](https://mondai.ping-t.com/question_subjects/31/question_sessions/30188717/progressing_questions/462490494)
- [3585_GRUB 2, /boot/grub/grub.cfg](https://mondai.ping-t.com/question_subjects/31/question_sessions/30873040/progressing_questions/472962312)
- [3715_GRUB 2, /etc/grub.d, menuentry](https://mondai.ping-t.com/question_subjects/31/question_sessions/32375836/progressing_questions/496046639)
- [3716_GRUB 2, /etc/grub.d, insmod](https://mondai.ping-t.com/question_subjects/31/question_sessions/31357762/progressing_questions/480478546)