Categories: linuxOS

Linuxのブートローダとは?仕組みと設定方法を徹底解説

Linuxを起動する際に欠かせない「ブートローダ」は、OSの起動プロセスを管理する重要な役割を持っています。しかし、初心者にとってはその仕組みが分かりにくく、設定を誤るとシステムが正常に起動しなくなることもあります。本記事では、Linuxのブートローダについて詳しく解説し、その種類や動作の仕組み、設定方法について分かりやすく説明します。特に、GRUB(GNU GRUB)を中心に設定ファイルの編集方法やトラブルシューティングについても紹介します。


Linuxのブートローダとは?

ブートローダ(Boot Loader)とは、コンピュータの電源を入れた際に最初に実行されるプログラムのことです。具体的には、OSをメモリにロードし、起動させる役割を担っています。

ブートローダの役割

  1. OSの選択:マルチブート環境では、起動するOSを選択できる
  2. カーネルの読み込み:LinuxカーネルをRAMにロードし、初期化する
  3. カーネルパラメータの設定:カーネルに対してオプションを指定する

ブートローダの動作の流れ

  1. BIOSまたはUEFIの起動:電源投入後、ハードウェアの初期化が行われる
  2. ブートローダのロード:ストレージからブートローダが読み込まれる
  3. カーネルのロード:ブートローダが指定されたカーネルをメモリにロード
  4. OSの起動:カーネルが起動し、ユーザー環境が立ち上がる

Linuxの代表的なブートローダ

Linuxでは、主に以下のブートローダが使用されています。

1. GRUB(GNU GRUB)

現在のLinuxディストリビューションで最も広く使われているブートローダ。

  • 特徴
    • GUIベースのメニューを提供
    • マルチブート対応(複数のOSをインストール可能)
    • 柔軟なカーネルパラメータの設定が可能
  • バージョン
    • GRUB Legacy(GRUB 0.x)(旧バージョン、現在は非推奨)
    • GRUB 2(現在主流のバージョン)

2. LILO(Linux Loader)

GRUBが普及する前に使われていたブートローダ。

  • 特徴
    • シンプルで動作が軽量
    • 設定変更後に lilo コマンドで再インストールが必要
    • マルチブート機能は限定的

3. SYSLINUX

軽量なブートローダで、USBメモリやPXEブート環境などに使用される。

  • 特徴
    • FATファイルシステムで動作
    • ネットワークブート対応(PXELINUXなど)
    • 組み込み向けに適している

4. systemd-boot(旧Gummiboot)

UEFI環境向けのブートローダで、systemdの一部として開発された。

  • 特徴
    • シンプルな設定ファイル
    • GRUBよりも軽量
    • UEFI専用

GRUB 2 の基本設定とカスタマイズ方法

GRUB 2 の設定は /etc/default/grub ファイルで行います。
変更後は update-grub を実行して適用します。

設定ファイルの編集

sudo nano /etc/default/grub

代表的な設定項目:

GRUB_DEFAULT=0  # デフォルトで起動するOS
GRUB_TIMEOUT=5 # メニュー選択の待機時間(秒)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" # カーネルオプション

変更を適用するには以下を実行:

sudo update-grub
sudo grub-install /dev/sdX # sdX はブートディスク

GRUB のメニューを編集する

GRUBメニューのエントリを変更したい場合は /etc/grub.d/ ディレクトリ内のスクリプトを編集するか、/boot/grub/grub.cfg を直接修正します(推奨されない)。


GRUBのトラブルシューティング

GRUBの設定を間違えると、Linuxが起動しなくなることがあります。その場合、以下の方法で修復できます。

1. GRUBレスキューモードの利用

エラーメッセージ grub rescue> が表示された場合:

set root=(hd0,1)
set prefix=(hd0,1)/boot/grub
insmod normal
normal

これでGRUBメニューが復活する場合があります。

2. Live CD/USB から修復

  1. LinuxのLive環境を起動
  2. ターミナルを開き、ブートパーティションをマウント
  3. GRUBを再インストール
sudo mount /dev/sdX1 /mnt
sudo grub-install --root-directory=/mnt /dev/sdX
sudo update-grub
  1. 再起動して確認

まとめ

Linuxのブートローダは、OSの起動に欠かせない重要なソフトウェアです。特にGRUB 2は多機能で柔軟な設定が可能ですが、設定ミスによるトラブルも起こりやすいです。本記事では、ブートローダの基本から、代表的な種類、GRUB 2の設定方法やトラブルシューティングまで詳しく解説しました。Linuxをより深く理解し、安定した環境を構築するために、ブートローダの仕組みをしっかり把握しておきましょう。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。