8
10

More than 3 years have passed since last update.

Linuxのブートシーケンスって?

Posted at

はじめに

エンジニア一年生です。
Linuxがどのように起動していくのか気になったので、ざっくりとまとめました。

ブートシーケンスとは

ブートシーケンスとは「PC電源投入後から起動するまでの流れ」のこと。
Unix系OSで広く使われてきたSysV initとsystemdの例を示す。

スクリーンショット 2021-08-31 21.59.49.png

SysV initでは、電源を投入するとBIOSが起動する。BIOSはHDDの先頭領域にあるMBR内のブートローダーをメモリに読み込み、起動させる。ブートローダーはHDDに保存された/boot以下の圧縮されたカーネルコードを読み込む。カーネルは自身を解凍して初期化を行い、1番目のユーザープロセスであるinitを生成する。initが起動すると/etc/inittabファイルを読み込み、サービスを起動する。

systemd(最近のプログラム)はBIOSの代わりにUEFIが、1番目のユーザープロセスはinitではなくsystemdが採用されている。

※BIOSではディスクの先頭のMBR内のブートローダーを起動するが、UEFIではNVRUM(Non Volatile RAM:不揮発性メモリ)に設定された優先順位に従って、ディスクのEFIパーティションに格納されているブートを起動する。

BIOSとは

PCのハードウェアに組み込まれている不揮発性メモリに格納されたプログラム。
ディスクの先頭ブロック(MBR:Master Boot Record)に書き込まれたブートローダーをメモリにロードする。MBRパーティション形式に基づく、古いブート形式である。

UEFIとは

UEFIブートエントリで指定されたEFIシステムパーティション中のブートローダをメモリにロードするプログラム。BIOSに代わるファームウェア規格で、大容量ディスク(GPT)への対応、セキュリティの強化など、機能が拡張している。GPTパーティション形式に基づく、新しいブート形式である。

ブートローダーの役割

BIOSから呼び出されてカーネルをメモリに読み込んでカーネルに制御を渡す。

パーティション形式について

MBRとは

MBR(Master Boot Record)は古くからあるパーティション形式。

  • 2TB以下
  • 最大4個までパーティションを分けれる
  • どのマザーボードでも使用可能

パーティションの作成、削除、変更が行えるコマンドはfdisk。

GPTとは

GPT形式(Globally Unique Identifler partition Table)は比較的新しいパーティション形式。

  • 2TB以上(最大8.5ZB)
  • 最大128個までパーティションを分けれる
  • マザーボードがUEFIに対応している必要がある

パーティションの作成、削除、変更が行えるコマンドはgdisk。
fdiskはGPT形式のハードディスクに対応していない。

参考: https://pc-kaizen.com/difference-between-mbr-and-gpt

8
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10