#はじめに
エンジニア一年生です。
Linuxがどのように起動していくのか気になったので、ざっくりとまとめました。
##ブートシーケンスとは
ブートシーケンスとは「PC電源投入後から起動するまでの流れ」のこと。
Unix系OSで広く使われてきたSysV initとsystemdの例を示す。
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形式のハードディスクに対応していない。