設定 - ブートローダ

提供:MochiuWiki : SUSE, EC, PCB
2024年5月23日 (木) 05:03時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == ブートローダとは、コンピュータの起動時にオペレーティングシステム(OS)を読み込み、実行するためのプログラムである。<br> <br> Linuxには、いくつかのブートローダが存在しており、それぞれ固有の機能と利点を持っている。<br> Linuxにおいて、一般的に使用されるブートローダを以下に示す。<br> <br> これらのブートローダは、それぞれ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

ブートローダとは、コンピュータの起動時にオペレーティングシステム(OS)を読み込み、実行するためのプログラムである。

Linuxには、いくつかのブートローダが存在しており、それぞれ固有の機能と利点を持っている。
Linuxにおいて、一般的に使用されるブートローダを以下に示す。

これらのブートローダは、それぞれの長所と短所を持っており、システムの要件、ファイルシステム、ファームウェアのタイプ(BIOS/UEFI)等、ユーザの好みに応じて選択される。
現在、最も広く使用されているLinuxブートローダはGRUB2であるが、他のブートローダも特定の用途に適している。

  • GRUB (GRand Unified Bootloader)
    GRUB2の前身であり、レガシーバージョンと呼ばれることもある。
    設定ファイルは、/boot/grub/grub.cfgまたは/boot/grub/menu.lstに存在する。
    GRUB2ほど高機能ではないが、より単純な設定で動作する。

  • Tow-Boot
    Chromebookや他のARMベースのデバイス用のオープンソースブートローダである。
    U-Bootをベースとしており、ChromeOSデバイス上でLinuxや他のオペレーティングシステムを起動するために使用される。
    ファームウェアの更新や検証、ブートモードの選択等、幅広い機能を提供する。
    Chromebookユーザの間で人気が高まっており、ChromeOSの代替OSを試す際に重要な役割を果たしている。

  • LILO (LInux LOader)
    Linuxの初期のブートローダの1つで、古いシステムではまだ使用されている。
    設定ファイルは、/etc/liloに存在する。
    カーネルイメージやinitrdを直接読み込むことができる。
    ブートセクタに直接書き込むため、設定変更後は常にブートセクタを更新する必要がある。

  • Syslinux
    FAT、ext2、ext3、ext4等のファイルシステムをサポートしている。
    ISOLINUXを使用して、ブート可能なCDやDVDを作成するために広く使用されている。
    PXELINUXを使用して、ネットワーク経由でブートすることもできる。

  • systemd-boot (旧名: gummiboot)
    UEFIシステム用の単純なブートマネージャーである。
    設定ファイルは、/boot/loader/entries/ディレクトリ内の.confファイルである。
    シンプルでミニマルな設計が特徴で、高速な起動が可能である。

  • rEFInd
    UEFIシステム用のブートマネージャーであり、グラフィカルなユーザーインターフェースを提供する。
    Linux、MacOS、Windows等の複数のOSを検出して、ブートメニューに自動的に追加する。
    テーマやアイコンのカスタマイズが可能であり、視覚的に魅力的なブート環境を提供する。



GRUB2

GRUB2とは

GRUB2 (GRand Unified Bootloader version 2) は、Linuxシステムで広く使用されているブートローダである。
GRUB2は、Linuxシステムにおいて重要な役割を果たしており、ブートプロセスをカスタマイズや複数のOSを管理するための強力で柔軟なツールである。

GRUB2の主な役割と概念は以下の通りである。

  • ブートプロセスの制御
    GRUB2は、BIOS/UEFIにより最初に読み込まれて、OSを起動するためのブートプロセスを制御する。
  • ブートメニューの提供
    GRUB2は、インストールされている複数のOSをリストアップしたブートメニューを表示する。
    ユーザは、このメニューからブートするOSを選択できる。
  • 設定ファイル
    GRUB2の設定は、主に/etc/default/grubファイル/etc/grub.d/ディレクトリ内のファイルで定義される。
    これらのファイルは、ブートメニューのエントリ、デフォルトのOS、タイムアウト等を制御する。
  • モジュラー設計
    GRUB2は、モジュール式の設計を採用している。
    これにより、必要な機能を動的に読み込むことができ、柔軟性と拡張性が向上する。
  • 複数のファイルシステムとOSのサポート
    GRUB2は、ext4、btrfs、NTFS、FAT等、様々なファイルシステムをサポートしている。
    また、Linux、Windows、MacOS等、複数のOSをブートすることができる。
  • コマンドラインインターフェース
    GRUB2は、ブートメニューで[C]キーを押下することにより、アクセスできるコマンドラインインターフェースを提供する。
    このインターフェースを使用して、ブートパラメータの編集やカスタムブートエントリの追加等を行うことができる。
  • 復旧機能
    GRUB2は、システムが起動しない場合に備えて、復旧モードを提供する。
    これにより、ユーザはシステムを修復するためのオプションにアクセスできる。


GRUB2の復旧

例えば、WindowsのアップデートによりLinuxのGRUB2ブートローダが表示されない場合がある。
この時、以下に示す手順を行うことにより、GRUB2を復旧することができる。

  1. 各LinuxディストリビューションのライブUSBを準備する。
  2. ライブUSBからLinuxを起動する。
  3. ターミナルを開いて、既存のLinuxのインストール先パーティションをマウントする。
    sudo mount /dev/sdXY /mnt
    Xは、既存のLinuxがインストールされているストレージ番号を指定する。
    Yは、既存のLinuxがインストールされているGRUB2ブートローダのパーティション番号を指定する。
  4. 必要なディレクトリをバインドマウントする。
    for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done
  5. chroot環境に入る。
    sudo chroot /mnt
  6. GRUB2を再インストールする。
    grub-install /dev/sdX
    Xは、既存のLinuxがインストールされているストレージ番号を指定する。
  7. GRUB2の設定ファイルを更新する。
    update-grub
  8. chroot環境を終了して、マウントを解除する。
    exit
    sudo umount /mnt/sys /mnt/proc /mnt/run /mnt/dev /mnt
  9. PCを再起動して、GRUB2のブートメニューが表示されるかどうかを確認する。