つよつよエンジニアになりたい

つよつよエンジニアになりたいエンジニアが日々の学びや気づきをアウトプットしていきます

Linuxのパーティション

LinuxではハードディスクやSSDなどのストレージをパーティションと呼ばれる「しきり」で分けている。windowsで言うところのドライブをCやDに分けているのと似ている。パーティションでハードディスクを複数の区画に分割することで独立して機能させることができる。

なぜパーティションで分けるのか

前述の通りハードディスクを分割することで独立した区画となり、ファイルシステムに一部障害が発生した際も被害を最小限に止めることができる。また、書き込みが多く容量を使うディレクトリをパーティションで分割することでディスク容量が不足してシステム全体が機能しなくなる事態を防ぐことができる。(ログの書き込みが頻繁に発生する/varディレクトリなど)

パーティションの種類

基本パーティション・拡張パーティション・論理パーティションの3種類がある。

基本パーティション

BIOSベースのシステムでは基本パーティションは4つまで作成可能。作成したパーティションの中にファイルシステムを作成することでデバイスにアクセスできる。ハードディスクが /dev/sda の場合、デバイス名は /dev/sda1 ~ /dev/sda4となる。

拡張パーティション

BIOSベースのシステムで使用される。基本パーティションの一つに作ることができる。拡張パーティションの中には後述する論理パーティションを複数作成することができる。

論理パーティション

BIOSベースのシステムで使用される。拡張パーティションの中に作成されるパーティション。作成するとデバイス名は /dev/sda5以降となる。

パーティションテーブル

パーティションの構成情報をOSに提供するプログラムのこと。ハードディスクごとに存在し、マスターブートレコードMBR)の一部。MBRはハードディスクの最初に読み込まれる場所に存在し、その中にはブートローダパーティションテーブルがある。

OSの起動とパーティションテーブル

PCの電源がオンになるとマザーボード上のBIOSが実行されハードウェアの初期化が行われる。その後のブートデバイス(一般的にはハードディスク)を認識する処理で先頭部分のMBRを読み込むことでMBRの中のブートローダパーティションテーブルのパーティション情報を把握し、パーティションの先頭セクタをロード・実行する。パーティションの先頭セクタにはブートセクタが存在し、ブートセクタのOS起動プログラムがOSを起動する。

文章だけだとわかりづらいため図を作成する予定。

参考

jp.minitool.com

Partition table definition by The Linux Information Project

8thway.cool.coocan.jp