付録A ディスクパーティションの概要

注記

AMD64 または Intel 64 以外のアーキテクチャーの場合、一部解説内容が該当しないこともありますが、ここでは基本概念として適用できる内容を解説しています。
このセクションでは、基本的なディスクの概念、ディスクパーティションの再設定、Linux システムで使用されるパーティション命名スキーム、および関連トピックについて説明しています。
ディスクパーティションについて充分理解している場合は本章を省略しても構いません。Red Hat Enterprise Linux インストールの準備としてディスク領域を解放する手順を 「ディスクのパーティション再設定に関するストラテジー」 で確認してください。

A.1. ハードディスクの基本概念

ハードディスクの機能は、データを保存し、命令に応じて確実に取得するという非常に簡単なものです。
ディスクパーティション設定などの問題を論議する場合、基礎となるハードウェアについての理解があることが重要となります。しかし、理論は非常に複雑で広範にわたるものなので、ここでは基本的な概念のみが説明されています。この付録では、簡素化されたディスクドライブの図を使用してパーティションにおけるプロセスと理論を説明しています。
図A.1「未使用のディスクドライブ」は、新しい未使用のディスクドライブを示しています。
未使用のディスクドライブ

図A.1 未使用のディスクドライブ

A.1.1. ファイルシステム

ディスクドライブにデータを保存するには、最初にディスクドライブを フォーマット する必要があります。フォーマット (通常「ファイルシステムを作る」という意味で知られています) とは、ドライブに情報を書き込んで、未フォーマットのドライブの空白領域に順番を付けることです。
ファイルシステムを持たせたディスクドライブ

図A.2 ファイルシステムを持たせたディスクドライブ

図A.2「ファイルシステムを持たせたディスクドライブ」 で示されるように、ファイルシステムで与えられる順序によって、いくらかのトレードオフが生じます。
  • ファイルシステムに関連するデータを保存するためドライブの使用可能領域の数パーセントが使用され、オーバーヘッドになります。
  • 残りの領域は小規模で均一なサイズのセグメントに分割されます。Linux の場合、これらのセグメントは ブロック[4]と呼ばれます。
あらゆる OS に対応できるような万能なファイルシステムはありません。図A.3「別のファイルシステムを持つディスクドライブ」 で示すように、ディスクドライブには多くの異なるファイルシステムが書き込まれている可能性があります。異なるファイルシステム同士では互換性がない傾向があります。つまり、特定のファイルシステム (または、関連する数種類のファイルシステム) に対応するオペレーティングシステムが別の種類のファイルシステムには対応しないことがあります。ただし、Red Hat Enterprise Linux などは多様なファイルシステム (他のオペレーティングシステムで一般的に使用されている多くの種類を含む) に対応しているため、異なるファイルシステム間でのデータ交換が容易です。
別のファイルシステムを持つディスクドライブ

図A.3 別のファイルシステムを持つディスクドライブ

ディスクへのファイルシステムの書き込みは最初のステップに過ぎません。このプロセスの最終目標は実際にデータを 保存 して 取り出す ことです。下図は、データが書き込まれたディスクドライブを示しています。
データの書き込まれたディスクドライブ

図A.4 データの書き込まれたディスクドライブ

図A.4「データの書き込まれたディスクドライブ」で示されるように、以前に空白だったブロックにデータが保管されています。しかし、この図を見るだけではこのドライブに存在する正確なファイル数は分かりません。すべてのファイルは最低でも 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 パーティションテーブルがあるディスクドライブ

図A.5「パーティションテーブルがあるディスクドライブ」 で示してあるように パーティションテーブルは 4 つのセクション、つまり 4 つの プライマリ パーティションに分割されています。プライマリパーティションとは、持たせることができる論理ドライブ (またはセクション) が 1 つのみのハードドライブ上にあるパーティションです。各セクションに格納できるのは、1 つのパーティションの定義に必要な情報です。つまり、パーティションテーブルで定義できるパーティションは、4 つまでということになります。
各パーティションテーブルのエントリーにはパーティションに関する重要な特徴が記載されています。
  • ディスク上のパーティションの開始点と終了点
  • パーティションが「アクティブ」かどうか
  • パーティションのタイプ
開始点と終了点により、パーティションサイズとディスク上の位置が定義されます。「アクティブ」フラグは特定のオペレーティングシステムのブートローダーによって使用されます。つまり、「アクティブ」の印が付いたパーティションにあるオペレーティングシステムが起動されます。
タイプとは、パーティションの用途を識別する番号です。オペレーティングシステムのなかには、特定のファイルシステムタイプを示す、特定のオペレーティングシステムに関連しているパーティションとしてフラグを付ける、起動可能なオペレーティングシステムを含んでいるパーティションであることを示す、などの目的でパーティションタイプを使用するものがあります。
図A.6「パーティションを 1 つだけ持たせたディスクドライブ」 でパーティションが1 つだけあるディスクドライブの例を示します。
パーティションを 1 つだけ持たせたディスクドライブ

図A.6 パーティションを 1 つだけ持たせたディスクドライブ

多くの場合、1 つのパーティションがディスク全体を占めていることが多く、この場合、パーティション設定の前に使用された方法を複製しています。パーティションテーブルでは 1 つのエントリーのみが使用されており、そのエントリーはパーティションの先頭を指しています。
上記の例では "DOS" タイプのラベルが付けられています。表A.1「パーティションタイプ」 で示しているパーティションのいずれかに該当しますが、ここでは詳しく限定しません。
表A.1「パーティションタイプ」 に、一般的な (およびあまり知られていない) パーティションタイプとその 16 進数の数値の一覧を示します。

表A.1 パーティションタイプ

パーティションタイプパーティションタイプ
空白00Novell Netware 38665
DOS 12-bit FAT01PIC/IX75
XENIX root02Old MINIX80
XENIX usr03Linux/MINUX81
DOS 16-bit <=32M04Linux swap82
Extended05Linux native83
DOS 16-bit >=3206Linux extended85
OS/2 HPFS07Amoeba93
AIX08Amoeba BBT94
AIX bootable09BSD/386a5
OS/2 Boot Manager0aOpenBSDa6
Win95 FAT320bNEXTSTEPa7
Win95 FAT32 (LBA)0cBSDI fsb7
Win95 FAT16 (LBA)0eBSDI swapb8
Win95 Extended (LBA)0fSyrinxc7
Venix 8028640CP/Mdb
Novell51DOS accesse1
PReP Boot41DOS R/Oe3
GNU HURD63DOS secondaryf2
Novell Netware 28664BBTff

A.1.3. パーティション内にさらにパーティションを設定する — 拡張パーティションの概要

4 つのパーティションで不十分な場合、拡張パーティション を使って新たなパーティションを作成することができます。これは、パーティションのタイプを「Extended (拡張)」とすることで行います。
拡張パーティションは、それ自体がディスクドライブのようなもので、独自のパーティションテーブルを持っています。このパーティションテーブルは、拡張パーティション自体の中に設定した 1 つまたは複数のパーティションを指します (4 つの プライマリーパーティション に対して、これらのパーティションは 論理パーティションと呼ばれる)。図A.7「拡張パーティションを持たせたディスクドライブ」 では 1 つのプライマリーパーティションと 1 つの拡張パーティションを示しています。この拡張パーティションには 2 つの論理パーティションが含まれています (また、パーティション未設定の空き領域も存在)。
拡張パーティションを持たせたディスクドライブ

図A.7 拡張パーティションを持たせたディスクドライブ

この図が示すように、プライマリーパーティションと論理パーティションには違いがあります。プライマリーパーティションは 4 つしかできませんが、論理パーティションの数にはその制限がありません。しかし、Linux でのパーティションへのアクセス方法を考慮すると、1 つのディスクドライブに 12 個を超える論理パーティションを定義するのは避けてください。

A.1.4. GUID パーティションテーブル (GPT)

GUID パーティションテーブル (GPT) は、グローバルに固有となる識別子 (GUID) の使用を基本とする新しいパーティション設定スキームです。GPT は、MBR パーティションテーブルの限界、特に 1 ディスクで対応可能な最大ストレージ領域の上限に対処するため開発されました。2.2 テラバイトを超えるストレージ領域には対応できない MBR とは異なり、GPT はこのサイズよりも大きなハードディスクでも使用することができます。対応可能な最大ディスクサイズは 2.2 ゼタバイトになります。また、GPT はデフォルトで最大 128 個のプライマリーパーティションの作成にも対応します。パーティションテーブルへの領域割り当てを増やすことで、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 起動パーティションが含まれている場合は、これを再利用することができます。


[4] ブロックのサイズは図とは異り実際には 均一なサイズです。また、平均的なディスクドライブには数千個のブロックが含まれていますが、この図は説明用に簡略されています。