Instiq
第1章 · システムの起動とLinuxカーネル·v1.0.0·更新 2026/7/7·読了目安 約12分

変更要約: 初版(主題2.01・副主題2.01.1〜2.01.5に対応)

1.1ブートプロセスとGRUB

この節の要点

電源投入からカーネル起動までのファームウェア層を深掘りします。BIOSUEFI の違い、MBRESPEFI System Partition)というディスクレイアウトの差、efibootmgr によるブートエントリ管理、GRUB2 の設定生成(grub-mkconfig / grub2-mkconfig)とインストール(grub-install / grub2-install)、initrdinitramfs の役割を押さえます。

LinuC レベル2 では「起動しない」障害の一次切り分けができる深さが求められます。101 で学んだ大枠(ファームウェア→ブートローダー→カーネル→systemd)を、201 ではファームウェアの実装差(BIOS/UEFI)ブートローダーの内部構造(GRUB2)まで踏み込んで理解します。

1.1.1BIOS/UEFIとディスクレイアウト

  • BIOS=レガシーファームウェア。起動デバイスの先頭セクタにあるMBR(Master Boot Record)内のブートコードを実行してブートローダーへ処理を渡す。パーティション情報も MBR に格納。
  • UEFI=現代のファームウェア。専用のパーティション ESP(EFI System Partition)/boot/efi/ にマウント)にブートローダーの実行ファイル自体を置く点が MBR 方式と根本的に異なる。
  • efibootmgr=UEFI のブートエントリ(どのブートローダーをどの順で試すか)を一覧・追加・削除・並べ替えするコマンド。UEFI shell(ファームウェア組込みの簡易シェル)から手動でブートローダーを起動して復旧することもできる。

1.1.2GRUB2の設定生成とinitramfs

  • GRUB2 の設定ファイルは直接編集せず、/etc/default/grub/etc/grub.d/ を元に grub-mkconfig(Debian系)/grub2-mkconfig(RHEL系)で生成する。出力先はディストリごとに /boot/grub/grub.cfg または /boot/grub2/grub.cfg
  • grub-installgrub2-installブートローダー本体をディスク(BIOS 方式なら MBR、UEFI 方式なら ESP)にインストールするコマンド。設定生成(mkconfig)とブートコード設置(install)は別工程。
  • カーネルがルートファイルシステムをマウントする前に必要なドライバやツールを詰めた一時ファイルシステムが initrd(旧方式)/initramfs(現行方式)GRUB2 のメニューエントリはカーネル本体と initramfs イメージの両方を指定する。
試験ポイント

「ブートコードの置き場所=BIOS は MBR・UEFI は ESP」「設定を作る=grub-mkconfig/grub2-mkconfig」「ブートコードを設置する=grub-install/grub2-install」 という役割の切り分けが最頻出です。ESP は /boot/efi/ にマウントされるただの FAT パーティションであり、MBR のような特殊領域ではない点も対比で問われます。

障害対応の実務で流れを追いましょう。「起動しない」という報告を受けたら、まず UEFI か BIOS かを確認します。UEFI 機ではファームウェアのセットアップ画面や efibootmgr -v でブートエントリの有無・順序を確認し、エントリが消えていれば efibootmgr -c -L "Linux" -l \EFI\debian\grubx64.efi のように再作成するか、UEFI shell から直接 \EFI\debian\grubx64.efi を起動して一時的に復旧を試みます。GRUB2 自体の設定が壊れているなら、カーネル追加やブートオプション変更のたびに /etc/default/grub を編集してから grub2-mkconfig -o /boot/grub2/grub.cfg のように再生成します(直接 grub.cfg を編集すると次回の mkconfig で上書きされます)。ブートローダー本体が破損・未インストールの場合は、対象のルートパーティションと ESP を正しくマウントした状態で grub2-install /dev/sda(BIOS)または grub2-install --target=x86_64-efi(UEFI)を実行してブートコードを設置し直します。カーネルパニックの手前で initramfs 展開が失敗しているなら、initramfs にドライバ(例:特殊な RAID/暗号化ドライバ)が不足している可能性を疑います。

観点BIOS方式UEFI方式
ブートコードの置き場所MBR(先頭セクタ)ESP(EFI System Partition・/boot/efi/)
パーティション形式特殊領域(MBR自体)通常のFATパーティション
ブートエントリ管理ブートローダーのメニューで管理efibootmgr でファームウェアに登録
設置コマンドgrub-install /dev/sdagrub-install --target=x86_64-efi
注意

ひっかけ: 「grub-mkconfig はブートローダー本体をディスクに書き込むコマンドである」は誤りです。設定ファイルを生成するのが mkconfig 系、ブートコードを設置するのが install 系という役割です。また「ESP は MBR と同じくパーティションテーブル外の特殊領域である」も誤り=ESP は普通に /boot/efi/ としてマウントされる FAT パーティションです。

BIOS/MBRとUEFI/ESPの起動経路、grub-mkconfigとgrub-installの役割分担を示す図。
設定生成とブートコード設置は別工程

1.1.3この節のまとめ

  • BIOS=MBRにブートコード/UEFI=ESP(/boot/efi/)にブートローダー本体。efibootmgr でブートエントリ管理
  • 設定生成=grub-mkconfig/grub2-mkconfig/設置=grub-install/grub2-install。initrd/initramfsはルートマウント前の一時ファイルシステム

進捗の記録にはログインが必要です。

理解度チェック

(軽い確認用)

Q1. UEFI 環境で GRUB2 のブートエントリが消えてしまい、ファームウェアのブートメニューに表示されなくなった。まず確認・対処すべき方法として最も適切なのはどれ?

Q2. カーネルのブートオプションを恒久的に変更したい。/etc/default/grub を編集した後、RHEL系ディストリで実施すべき手順はどれ?

Q3. BIOS方式とUEFI方式のディスクレイアウトの違いに関する説明として正しいのはどれ?

理解度を確認第1章「システムの起動とLinuxカーネル」の問題を解く