Linux では、ハードディスクをパーティションに細分化でき、これらは個別のブロックデバイスとして機能します。/dev/sda1や/dev/sda2などの例を思い出せるかもしれません。ここで、/dev/sdaはディスク全体を表し、/dev/sda1はそのディスク上の最初のパーティションです。パーティションはデータを分離するのに非常に役立ちます。ストレージの一部に特定のファイルシステムが必要な場合は、ディスク全体をフォーマットする代わりに、そのために新しいパーティションを作成できます。
パーティションテーブル
では、ディスクのどのコンポーネントが OS にディスクのパーティション分割方法を伝えるのでしょうか?答えはパーティションテーブルです。この重要なコンポーネントには、ハードドライブパーティションがどのように編成されているかの情報が含まれています。パーティションテーブルは、各パーティションがどこで始まりどこで終わるか、どのパーティションが起動可能か、ディスクのどのセクタが各パーティションに割り当てられているかを指定します。主要なパーティションテーブル方式には、マスターブートレコード(MBR)と GUID パーティションテーブル(GPT)の 2 種類があります。
Linux パーティションの理解
ディスクは、データの整理に役立つパーティションで構成されています。1 つのディスク上に複数のパーティションを持つことはできますが、それらが重複することはありません。パーティションに割り当てられていないディスク上の領域は、空き領域として知られています。利用可能な Linux パーティションの種類は、使用するパーティションテーブル方式によって異なります。パーティション内では、ファイルシステムを作成したり、スワップ領域などの他の目的に割り当てたりできます。
MBR パーティション
マスターブートレコード(MBR)は、従来のパーティションテーブル標準です。
- プライマリ、拡張、および論理パーティションをサポートします。
- MBR には 4 つのプライマリパーティションの制限があります。
- より多くのパーティションを作成するには、1 つのプライマリパーティションを拡張パーティションとして指定する必要があります(ディスクごとに 1 つのみ許可されます)。この拡張パーティション内で、他のパーティションと同様に機能する複数の論理パーティションを作成できます。
- 最大 2 テラバイトのディスクサイズをサポートします。
GPT パーティション
GUID パーティションテーブル(GPT)は、ディスクパーティション設定の最新標準です。
- パーティションタイプは 1 種類のみで、多数作成できます。
- 各パーティションにはグローバル一意識別子(GUID)が割り当てられます。
- GPT は、UEFI ベースのブートシステムで一般的に使用されます。
ファイルシステム構造
以前に学んだように、ファイルシステムはファイルとディレクトリの整理されたコレクションです。その核となるのは、ファイルを管理するためのデータベースとファイル自体で構成されています。その構造をさらに詳しく見てみましょう。
- ブートブロック: ファイルシステムの最初の数セクタに配置され、ファイルシステム自体では使用されません。代わりに、オペレーティングシステムを起動するために使用される情報が含まれています。OS ごとに 1 つのブートブロックが必要です。他のパーティションにもブートブロックがある場合がありますが、それらは未使用のままになることがよくあります。
- スーパーブロック: これはブートブロックの直後に続く単一のブロックで、ファイルシステムのサイズ、論理ブロックのサイズ、ファイルシステム全体のサイズなど、ファイルシステムに関するメタデータが含まれています。
- inode テーブル: これはファイルとディレクトリを管理するデータベースです。各ファイルまたはディレクトリには、それに関するさまざまな属性を格納する inode テーブル内に一意のエントリがあります。inode については、専用のレッスンで説明します。
- データブロック: ここにファイルやディレクトリの実際のコンテンツが保存されます。
以下は、MBR パーティションテーブル(msdosとしてラベル付け)を使用するディスクの例です。プライマリ、拡張、および論理パーティションを確認できます。
pete@icebox:~$ sudo parted -l
Model: Seagate (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 6860MB 6859MB primary ext4 boot
2 6861MB 21.5GB 14.6GB extended
5 6861MB 7380MB 519MB logical linux-swap(v1)
6 7381MB 21.5GB 14.1GB logical xfs
この 2 番目の例は、パーティションに一意の ID を使用する GPT パーティションテーブルを示しています。
Model: Thumb Drive (scsi)
Disk /dev/sdb: 4041MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 1000MB 1000MB first
2 1000MB 4040MB 3040MB second