付録A ディスクパーティションの概要
注記
AMD64 または Intel 64 以外のアーキテクチャーの場合、一部解説内容が該当しないこともあります。ただし、ここでは基本概念として該当する内容を解説しています
このセクションでは、基本的なディスクの概念、ディスクパーティションの再設定、Linux システムで使用されるパーティション命名スキーム、および関連トピックについて説明しています。
ディスクパーティションについて充分理解している場合は本章を省略しても構いません。Red Hat Enterprise Linux インストールの準備としてディスク領域を解放する手順を「ディスクのパーティション再設定に関する戦略」で確認してください。
注記
インストールの前に、ディスクデバイスにパーティションを設定するかどうかを検討する必要があります。詳細は、ナレッジベースの記事 (https://access.redhat.com/solutions/163853) を参照してください。
A.1. ハードディスクの基本概念
ハードディスクの機能は、データを保存し、命令に応じて確実に取得するという非常に簡単なものです。
ディスクパーティション設定などの問題を論議する場合、基礎となるハードウェアについての理解があることが重要となります。しかし、理論は非常に複雑で広範にわたるものなので、ここでは基本的な概念のみが説明されています。この付録では、簡素化されたディスクドライブの図を使用してパーティションにおけるプロセスと理論を説明しています。
図A.1「未使用のディスクドライブ」 は、新しい未使用のディスクドライブを示しています。
図A.1 未使用のディスクドライブ
[D]
A.1.1. ファイルシステム
ディスクドライブにデータを保存するには、最初にディスクドライブを フォーマット する必要があります。フォーマット (通常ファイルシステムを作るという意味で知られています) とは、ドライブに情報を書き込んで、未フォーマットのドライブの空白領域に順番を付けることです。
図A.2 ファイルシステムを備えたディスクドライブ
[D]
上記の図で示されるように、ファイルシステムが与える順序により、いくつかのトレードオフが生じます。
- ファイルシステムに関連するデータを保存するためドライブの使用可能領域の数パーセントが使用され、オーバーヘッドになります。
- 残りの領域は小規模で均一なサイズのセグメントに分割されます。Linux の場合、これらのセグメントは ブロック と呼ばれます。[4]
単一のユニバーサルファイルシステムは存在しないことに留意してください。下記の図が示すように、ディスクドライブには多くの異なるファイルシステムが書き込まれている可能性があります。異なるファイルシステムには互換性がない傾向があります。つまり、あるファイルシステム (または、関連した一部のファイルシステムタイプ) をサポートするオペレーティングシステムが別のタイプをサポートしない可能性があります。ただし、たとえば &PRODUCT; は多様なファイルシステム (他のオペレーティングシステムで通常使用されている多くのタイプを含む) をサポートしているので、異なるファイルシステム間でのデータ交換が容易になります。
図A.3 別のファイルシステムを持つディスクドライブ
[D]
ディスクへのファイルシステムの書き込みは最初のステップに過ぎません。このプロセスの最終目標は実際にデータを 保存 して 取り出す ことです。下図は、データが書き込まれたディスクドライブを示しています。
図A.4 データの書き込まれたディスクドライブ
[D]
上記の図では、以前に空白だったブロックにデータが保管されています。しかし、この図を見るだけではこのドライブに存在する正確なファイル数は分かりません。すべてのファイルが少なくとも 1 つのブロックを使用し、一部のファイルが複数のブロックを使用するため、ファイルが 1 つまたは多数ある場合があります。もう 1 つ注意すべき点は、使用済みのブロックは連続領域を形成する必要がないということです。使用ブロックと未使用ブロックが交互に混ざっている場合があります。これが 断片化 と呼ばれるものです。既存パーティションのサイズを変更する際に影響する可能性があります。
多くのコンピューター関連の技術と同じように、ディスクドライブは導入されてから常に変化し続けており、特に大型化しています。物理的サイズが大きくなっているわけではなく、情報保存の容量が大きくなっています。さらに、容量が追加されたことで、ディスクドライブの使用の仕方が基本的に変化しました。
A.1.2. パーティション: 1 つのドライブの分割
ディスクドライブは、複数の パーティション に分割できます。各パーティションは個々のディスクのように、別々にアクセスできます。パーティションテーブル を追加することでディスクドライブを複数パーティションに分割します。
ディスク領域を個別のディスクパーティションに割り当てる理由には以下のようなものがあります。
- オペレーティングシステムのデータをユーザーのデータから論理的に分離させるため。
- 異なるファイルシステムを使用するため。
- 1 台のマシン上で複数のオペレーティングシステムを稼働させるため。
物理ハードディスクには現在、マスターブートレコード (MBR) および GUID パーティションテーブル (GPT) という 2 つのパーティションレイアウト標準があります。MBR は、BIOS ベースのコンピューターで使われている旧式のディスクパーティション方式です。GPT は新たなパーティションレイアウトで、Unified Extensible Firmware Interface (UEFI) の一部です。このセクションおよび 「パーティションの中のパーティション: 拡張パーティションの概要」 では、主に マスターブートレコード (MBR) のディスクパーティションスキームを説明しています。GUID パーティションテーブル (GPT) のパーティションレイアウトの詳細は、「GUID パーティションテーブル (GPT)」を参照してください。
注記
ここで示す図ではパーティションテーブルが実際のディスクドライブから離れていますが、本来の状況を正確に表しているわけではありません。実際には、パーティションテーブルはそのディスクの先頭部分となる、他のファイルシステムまたはユーザーデータの前に格納されています。ただし、わかりやすくするために図では別々に表示します。
図A.5 パーティションテーブルがあるディスクドライブ
[D]
上記の図では、パーティションテーブルは 4 つのセクション、つまり 4 つの プライマリー パーティションに分割されています。プライマリーパーティションは、論理ドライブ (またはセクション) を 1 つだけ含むことができるハードドライブのパーティションです。各セクションは、1 つのパーティションの定義に必要な情報を保持できます。つまり、パーティションテーブルでは 4 つのパーティションを定義できません。
各パーティションテーブルエントリーには、パーティションの重要な特徴がいくつか含まれています。
- ディスク上のパーティションの開始点と終了点
- パーティションがアクティブかどうか
- パーティションのタイプ
開始点と終了点により、パーティションサイズとディスク上の位置が定義されます。アクティブフラグは特定のオペレーティングシステムのブートローダーによって使用されます。つまり、アクティブの印が付いたパーティションにあるオペレーティングシステムが起動されます。
タイプとは、パーティションの用途を識別する番号です。一部のオペレーティングシステムでは、パーティションの種類を使用して特定のファイルシステムの種類を示し、特定のオペレーティングシステムに関連付けられていることを示すフラグを付け、パーティションに起動可能なオペレーティングシステムが含まれていること、またはその 3 つの組み合わせを示します。
以下の図は、1 つのパーティションがあるディスクドライブのイメージです。
図A.6 パーティションが 1 つのディスクドライブ
[D]
この例の単一のパーティションには、
DOS
というラベルが付けられています。このラベルは パーティションタイプ を示し、DOS
は最も一般的なものの 1 つです。以下の表では、一般的なパーティションタイプとそれらを示す 16 進数を記載しています。
パーティションタイプ | 値 | パーティションタイプ | 値 |
---|---|---|---|
空白 | 00 | Novell Netware 386 | 65 |
DOS 12 ビット FAT | 01 | PIC/IX | 75 |
XENIX root | 02 | Old MINIX | 80 |
XENIX usr | 03 | Linux/MINUX | 81 |
DOS 16-bit <=32M | 04 | Linux swap | 82 |
Extended | 05 | Linux ネイティブ | 83 |
DOS 16 ビット (32 以上) | 06 | Linux 拡張 | 85 |
OS/2 HPFS | 07 | Amoeba | 93 |
AIX | 08 | Amoeba BBT | 94 |
AIX ブート可能 | 09 | BSD/386 | a5 |
OS/2 Boot Manager | 0a | OpenBSD | a6 |
Win95 FAT32 | 0b | NEXTSTEP | a7 |
Win95 FAT32 (LBA) | 0c | BSDI fs | b7 |
Win95 FAT16 (LBA) | 0e | BSDI swap | b8 |
Win95 Extended (LBA) | 0f | Syrinx | c7 |
Venix 80286 | 40 | CP/M | db |
Novell | 51 | DOS アクセス | e1 |
PReP Boot | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS セカンダリー | f2 |
Novell Netware 286 | 64 | BBT | ff |
A.1.3. パーティションの中のパーティション: 拡張パーティションの概要
4 つのパーティションで不十分な場合、拡張パーティション を使って新たなパーティションを作成できます。これは、パーティションのタイプを Extended (拡張) とすることで行います。
拡張パーティションは、それ自体がディスクドライブのようなものです。拡張パーティション自体に完全に含まれる、1 つ以上のパーティション (4 つの プライマリーパーティション ではなく、現在は 論理パーティション と呼ばれます) を指す独自のパーティションテーブルがあります。次の図は、1 つのプライマリーパーティションと、2 つの論理パーティションを含む 1 つの拡張パーティション (およびいくつかの未パーティションの空き領域) を備えたディスクドライブを示しています。
図A.7 拡張パーティションのあるディスクドライブ
[D]
この図は示すように、プライマリーパーティションと論理パーティションには違いがあります。最大 4 つのプライマリーパーティションしか存在できませんが、存在できる論理パーティションの数には固定制限がありません。プライマリーパーティションは 4 つしかできませんが、論理パーティションの数にはその制限がありません。しかし、Linux でのパーティションへのアクセス方法を考慮すると、1 つのディスクドライブに 12 個を超える論理パーティションを定義するのは避けてください。
A.1.4. GUID パーティションテーブル (GPT)
GUID パーティションテーブル (GPT) は、グローバルに固有となる識別子 (GUID) の使用を基本とする新しいパーティション設定スキームです。GPT は、MBR パーティションテーブルの限界、特に 1 ディスクで対応可能な最大ストレージ領域の上限に対処するため開発されました。2 TiB (ほぼ 2.2 TB と同様) を超えるストレージ領域には対応できない MBR とは異なり、GPT はこのサイズよりも大きなハードディスクでも使用することができます。処理可能な最大ディスクサイズは 2.2 ZiB です。また、デフォルトでは GPT は、最大 128 のプライマリーパーティションの作成に対応します。この数は、パーティションテーブルにより多くの領域を割り当てることで拡張できます。
GPT ディスクは論理ブロックアドレス指定 (LBA) を使用し、パーティションレイアウトは以下のようになります。
- MBR ディスクとの後方互換性を保つため、GPT の最初のセクター (LBA 0) は MBR データ用に予約されています。このセクターは「protective MBR」と呼ばれます。
- プライマリー GPT ヘッダー は、デバイスの 2 つ目の論理ブロック (LBA 1) から始まります。このヘッダーには、ディスク GUID、プライマリーパーティションテーブルの位置、セカンダリー GPT ヘッダーの位置、それ自体の CRC32 チェックサムおよびプライマリーパーティションテーブルが含まれます。また、テーブルのパーティションエントリー数もこのヘッダーで指定します。
- プライマリー GPT テーブル には、サイズが 128 バイト、パーティションタイプが GUID、固有パーティションが GUID のパーティションがデフォルトで 128 エントリー含まれています。
- セカンダリー GPT テーブル はプライマリー GPT テーブルとまったく同じものになります。これは、プライマリーパーティションテーブルが破損した場合に、リカバリーのバックアップテーブルとして主に使用されます。
- セカンダリー GPT ヘッダー はディスクの最後の論理セクターに位置し、プライマリーヘッダーが破損した場合に GPT 情報を復元する際に使用できます。ディスク GUID、セカンダリーパーティションテーブルの位置、プライマリー GPT ヘッダーの位置、それ自体の CRC32 チェックサムおよびセカンダリーパーティションテーブルが含まれます。また、作成可能なパーティションエントリー数も含まれます。
重要
GPT (GUID パーティションテーブル) を含むディスクには、ブートローダー用の BIOS 起動パーティションを正しくインストールしておく必要があります。これには、Anaconda によって初期化されるディスクが含まれます。ディスクに BIOS ブートパーティションがすでに含まれている場合は、再使用できます。