Linuxの仕組みを理解 BIOSとUEFI

Linuxの仕組み

BIOSとUEFI

BIOSとは

BIOS = Basic Input/Output Systemの略で、PCが起動するときに起動するプログラムです。

キーボード、マウス、ディスクが正しく動くかどうかを確認し、OSを起動する役割を担っています。

BIOSの起動プロセス

BIOSの起動プロセスは以下となります。

  1. 電源を入れる: パソコンの電源ボタンを押す。
  2. BIOSが起動: BIOSが最初に動き出す。
  3. POSTを実行: ハードウェアが正しく動くかどうかをチェックする。
  4. ハードウェアのチェック: ハードウェアが正常かどうかを確認。
    • 正常: 次のステップに進む。
    • 異常: エラーメッセージを表示して起動を中止。
  5. ブートデバイスを選択: OSが入っているデバイス(HDDやSSDなど)を選ぶ。
  6. ブートローダーを読み込む: 選んだデバイスからブートローダー(例: GRUB)を読み込む。
  7. カーネルをロード: ブートローダーがOSのカーネル(Linuxカーネルなど)をメモリにロードする。
  8. initシステムを起動: カーネルがinitシステム(例: systemdやSysVinit)を起動する。
    • initシステムは、OSのサービスやデーモンを起動し、ユーザーが使える状態にする。
  9. OSが使える状態になる: initシステムがすべてのプロセスを起動し、ログイン画面やデスクトップが表示される。
graph TD
    A[電源を入れる] --> B[BIOSが起動]
    B --> C[POST(Power-On Self-Test)を実行]
    C --> D{ハードウェアのチェック}
    D -->|正常| E[ブートデバイスを選択]
    D -->|異常| F[エラーメッセージを表示]
    F --> G[起動中止]
    E --> H[ブートローダーを読み込む]
    H --> I[カーネルをロード]
    I --> J[initシステムを起動]
    J --> K[OSが使える状態になる]

Post(Power On Self Test)でチェックされるハードウェア

  • CPU: プロセッサが正しく動作するかどうか
  • メモリ: メモリが正しく接続され、動作するかどうか
  • グラフィックカード: 画面を表示するためのグラフィックカードが動作するかどうか
  • ストレージ (HDD, SSD): ストレージが正しく接続、読み込めるかどうか
  • デバイス: キーボード、マウス、USBデバイスが正しく接続されているかどうか

UEFIとは

UEFI = Unified Extensible Firmware Interfaceの略で、一言でいうとBIOSの進化版です。

UEFIの起動プロセス

  1. 電源を入れる: パソコンの電源ボタンを押す。
  2. UEFIファームウェアが起動: UEFIファームウェアが最初に動き出す。
  3. ハードウェアの初期化とセルフテスト: UEFIがハードウェアを初期化し、簡易的なセルフテストを行う。
  4. ハードウェアのチェック: ハードウェアが正常かどうかを確認。
    • 正常: 次のステップに進む。
    • 異常: エラーメッセージを表示して起動を中止。
  5. ブートマネージャを読み込む: UEFIブートマネージャが起動し、ブートエントリを表示する。
  6. ブートエントリを選択: ユーザーが起動したいOSやブートローダーを選択する。
  7. ブートローダーを読み込む: 選択されたブートローダー(例: GRUB2)を読み込む。
  8. カーネルをロード: ブートローダーがOSのカーネル(Linuxカーネルなど)をメモリにロードする。
  9. initシステムを起動: カーネルがinitシステム(例: systemdやSysVinit)を起動する。
  10. OSが使える状態になる: initシステムがすべてのプロセスを起動し、ログイン画面やデスクトップが表示される。
graph TD
    A[電源を入れる] --> B[UEFIファームウェアが起動]
    B --> C[ハードウェアの初期化とセルフテスト]
    C --> D{ハードウェアのチェック}
    D -->|正常| E[ブートマネージャを読み込む]
    D -->|異常| F[エラーメッセージを表示]
    F --> G[起動中止]
    E --> H[ブートエントリを選択]
    H --> I[ブートローダーを読み込む]
    I --> J[カーネルをロード]
    J --> K[initシステムを起動]
    K --> L[OSが使える状態になる]

ブートマネージャとは

PCが起動する際に、どのOSやカーネルを起動するか管理するプログラムです。

1台のPCに複数のOS(またはディストリビューション)をインストールしている場合、例えばUbuntuとFedoraをインストールしている場合、ブートマネージャによって起動時にどちらのディストリビューションを起動するのかを選択できます。逆に言うとブートマネージャがないとどのOSを起動するのかを選択できません。

ブートマネージャには以下のような種類があります。

GRUB (GRand Unified Bootloader)

Linuxで広く使われているブートマネージャでOSを起動するためのブートローダーです。(ブート = 起動、ローダー = ロードする(読み込む))

Windows Boot Manager

名前の通り、Windowsで使われるブートマネージャです。

BIOSとUEFIの違い

BIOSとUEFIについて簡易的に表にまとめました。

項目BIOSUEFI
起動速度遅い速い
ディスク容量の制限2TBまで2TB以上も可能
セキュリティ弱い強い
インターフェーステキストベースGUI (マウス操作可能)
ブートローダーの読み込みMBR(Master Boot Record)を使用GPT(GUID Partition Table)を使用
ブートマネージャなしあり

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です