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

注意注記
 

この付録は必ずしもx86ベース以外のアーキテクチャに適用できるとは限りません。 しかしながら、ここに記載されている全般的なコンセプトは適用します。

ディスクパーティションはパーソナルコンピュータの使用環境では標準的な部分であり、 長い間、そのように認識されていました。しかし、 多数の人々がOSプリインストールのコンピュータを購入しているため、 パーティションがどのようになっているかは少数の人々にしか理解されていません。 Red Hat Enterprise Linuxのインストールができる限り簡単かつ容易なものになるよう、 本章ではディスク パーティションの機能と使用について説明します。

ディスクパーティションについて十分な理解があると思われる方は、 項C.1.4までスキップして、 Red Hat Enterprise Linux インストールの準備としてディスクを 解放する工程の情報を参照してください。 このセクションはLinuxシステムが使用するパーティションの命名体系、 他のOSとのディスクスペースの共有、その他関連した事柄について説明します。

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

ハードディスクは非常に簡単な機能を果たします — ハードディスクはデータを保存し、要求に応じて忠実にそれを取り出します。

ディスクパーティションなどの課題を論じるときには、 基本となるハードウェアの事について少々知っておくことが大切です。 ただ簡単に詳細にまで深入りしやすくなるので、 単純化されたディスクドライブの図を使用して、 ディスクドライブにパーティションを作る(区画を切るとも言う)時に何が起こっているのかを 説明します。図C-1は、 新品の未使用ディスク ドライブを示しています。

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

見るものがない状態ですね。 しかし基本レベルでディスクドライブを語るのなら今はこれで十分です。 この状態のまま、このドライブに何かデータを保存したいとなるとこれでは無理です。 まずしなければならない事があります…。

C.1.1. 何を書き込むかでなく、どの様に書き込むか

経験のあるユーザーなら多分すぐにお分かりでしょう。 ドライブをフォーマットする必要があります。 フォーマット (通常『ファイルシステムを 作る』と言う意味で知られています) とはドライブに情報を書き込んで、未フォーマットのドライブの空白の領域に順番を付けることです。

図 C-2. ファイルシステムを持つディスクドライブ

図C-2が示すように、 ファイルシステムによって強いられる順序にはトレードオフがあります。

  • ドライブの使用可能領域のごく一部がファイルシステム自身に関連するデータの保存に使用されますが、 これはオーバーヘッド(必要経費)と考えていいでしょう。

  • ファイルシステムは残りの領域を小さな固定サイズのセグメントに分割します。 Linuxではこれらのセグメントをブロックと呼びます。 [1]

ファイルシステムがディレクトリやファイルを使用できるようにするわけですから 上記のトレードオフは安いものと言えるでしょう。

また、一つの普遍的なファイルシステムしか機能しないのではありません。図C-3で示すように、 ディスク ドライブは書き込み可能な多くのファイルシステムのどれか一つを使えます。 想像できるように、異なるファイルシステム間では互換性がないという傾向があります。 つまり、ひとつのOSがあるファイルシステム(あるいはいくつかの関連ファイルシステムタイプ)に対応していても、他のファイルシステムには対応しないかもしれません。ただし、これは絶対的なものではありません。 例えば、 Red Hat Enterprise Linuxは広範囲のファイルシステム (他のOSでも一般的に使用されている多数のファイルシステムを含む)をサポートしており、 異なるファイルシステム間のデータ交換を容易にします。

図 C-3. 異なるファイルシステムを持つディスクドライブ

もちろん、ディスクファイルに書き込むのは始めの一歩に過ぎません。 このプロセスの目標は実際にデータを保存して取り出す ことです。何らかのデータが書き込まれたドライブについて見てみましょう。

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

図C-4が示すように、 以前は空だったブロックがいまはデータを格納しています。ただし、 この図からでは、このドライブに正確にはいくつのファイルが存在するのか判断することはできません。 各ファイルは少なくとも1つのブロックを使用し、 なかには複数のブロックを使用するファイルもあるため、ファイルは1つかもしれないし、多数のファイルがあるかもしれません。データが書き込まれたブロックが必ずしも隣接する必要がないことに注意してください。 つまり、未使用ブロックと使用済みブロックが点在するかもしれません。 この点在の状態は、 フラグメンテーション(断片化)と呼ばれています。 既存のパーティションサイズを変更するときにフラグメンテーションの操作が必要になることがあります。

多くのコンピュータ関連技術と同じように、 ディスクドライブは導入されてから常に変化し続けています。 つまり、より大きくなっています。 サイズではなく、情報保存の容量が大きくなっているのです。 そしてこの容量増加がディスクドライブの使用方法を根本的に変化させてきました。

C.1.2. パーティション:1つのドライブを複数ドライブにする

ディスクドライブの内容が飛躍的に増大するにつれて、 その領域のすべてをひとつの大きな塊にしておくのは良いやり方かどうか疑問視されるようになりました。 このような考え方は幾つかの問題によって引き出されました。 ある問題は論理的であり、あるものは技術的なものでした。 論理的な見地からすると、 適当なサイズを越えた場合に、 大容量ドライブから与えられる追加領域によってさらに散らかされてしまうのではという問題です。 また技術的な面からすると、 一定容量を越えるものをサポートするようには設計されていないファイルシステムがあるという問題です。 あるいは、ファイルシステムが大容量の大規模デバイスをサポートできたとしても、 ファイルを追跡するファイルシステムによって強いられるオーバーヘッドは 途方もないものになってしまうでしょう。

この問題に対する解決案はドライブをパーティションに分割することでした。 各パーティションが個々のディスクのようであれば、それぞれにアクセスが可能になります。 これは、パーティションテーブルを追加することによって実現されました。

注意注記
 

ここで示す図ではパーティションテーブルが実際のディスクドライブから離れていますが、 本来の状況を正確に表している訳ではありません。実際には、 パーティションテーブルはそのディスクの先頭部分となる、 他のファイルシステムまたはユーザーデータの前に格納されています。 但し、わかりやすくするために図では別々に表示します。

図 C-5. パーティションテーブルを持つディスクドライブ

図C-5が示すように、 パーティションテーブルは4個のセクションに分かれています。 各セクションにはひとつのパーティションを定義するために必要な情報が格納されています。 つまりパーティションテーブルで4個を越えるパーティションを定義することはできません。

各パーティションテーブルのエントリ(登記項目)はパーティションに関する重要な特徴を含んでいます。

  • ディスク上のパーティションの開始点と終了点

  • パーティションが「アクティブ」かどうか

  • パーティションのタイプ

これらの特長について詳しく見てみましょう。 開始点と終了点によって実際のパーティションサイズとディスク上の物理的な位置が定義されます。 「アクティブ」フラグは幾つかのOSのブートローダーによって使用されます。 つまり、「アクティブ」に設定されたパーティションに含まれるOSが ブートすることになります。

パーティションのタイプについては少々混乱を招くかもしれません。 タイプとは予測されたパーティションの用途を識別する番号です。 この表現では曖昧に響くかもしれませんが、それはパーティションの意味がやや曖昧だからです。 数種のOSはパーティションタイプを使い分けることで特殊なファイルシステムタイプを表現するとか、 フラグを付けて一定のOSに関連しているパーティションを区別とか、 起動可能なOSを含んでいるパーティション表示とか、 さらにはその3つの組合せなどの目的で使用します。

ここまでくると、これだけの複雑なものをどうやって使用するのか不思議に思われるでしょう。 例として、図C-6を参照してください。

図 C-6. 1つのパーティションを持つディスクドライブ

多くの場合には、ディスク全体にわたるひとつのパーティションがあります。 これはパーティション以前に使用されていた基本的な方法です。 パーティションテーブルではエントリがひとつだけ使用されており、 そのエントリはパーティションの先頭を示しています。

このパーティションには「DOS」というラベルを付けています。 これは表C-1のリストにある 幾つかのパーティションタイプのひとつですが、ここでの説明には適切です。

表C-1に、 一般的(及びあまり知られていない) パーティションタイプとその表現数値の一覧を示します。

パーティションタイプパーティションタイプ
空白00Novell Netware 38665
DOS 12-ビット FAT01PIC/IX75
XENIX root02Old MINIX80
XENIX usr03Linux/MINUX81
DOS 16-ビット <=32M04Linux swap82
Extended05Linux native83
DOS 16-ビット >=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
PPC PReP ブート41DOS R/Oe3
GNU HURD63DOS secondaryf2
Novell Netware 28664BBTff

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

C.1.3. パーティションの中のパーティション —拡張パーティションの概要

もちろん、4つのパーティションでは不十分であることに気が付くでしょう。 ディスクドライブはどんどん大きくなるわけで、 4つの適切なサイズのパーティションを設定した後でもまだディスク領域が余るようになって来ています。 したがってより多くのパーティションを作成する何らかの手段が必要になります。

そこで拡張パーティションの登場です。 表C-1 を見て気が付いたかも知れませんが、 "Extended"と言うパーティションタイプがあります。 これが拡張パーティションのことで拡張操作の中心となります。

パーティションを作成して"Extended"に設定すると拡張パーティションテーブルが作成されます。 本質的に、拡張パーティションは独立したディスクドライブのようなものです — つまり、拡張パーティションは1つまたは複数のパーティション (ここでは4つのプライマリパーティションに対して、 論理パーティションと呼ぶ) を指し示すパーティションテーブルを持っています。 論理パーティション群は拡張パーティションの中に完全に内包されます。 図C-7は、 1つのプライマリパーティションと2つの論理パーティションを含む拡張パーティションを 持つディスクドライブを示しています(パーティションが作成されていない空白もあります)。

図 C-7. 拡張パーティションを持つディスクドライブ

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

ここまでパーティションの一般論を説明しましたので、 この知識を利用して Red Hat Enterprise Linuxをインストールする方法を考えてみましょう。

C.1.4. Red Hat Enterprise Linuxのための領域作成

ハードディスクのパーティションを作り直す際に対面する3つのシナリオがあります。

  • パーティションが作成されてない空き領域がある

  • 未使用のパーティションがある

  • 使用中のパーティションの中に空き領域がある

各シナリオを順番に検討しましょう。

注意注記
 

次の図は理解しやすいように単純化されています。 実際にRed Hat Enterprise Linuxをインストールするときに遭遇するようなパーティションのレイアウトを 正確に反映しているわけではないことに注意してください。

C.1.4.1. パーティションが作成されていない領域の使用

この状態では、既に定義されているパーティションではハードディスク全体を占めていず、 定義されていない割り当てのない状態の領域が残されています。図C-8は、この状態を表しています。

図 C-8. パーティションが作成されていない空き領域を持つディスクドライブ

図C-8では、 1は領域が割り当てられていない未定義のパーティションを 示し、2は割り当てられた領域で定義済みのパーティションを 示します。

考えてみると未使用のハードディスクもこのカテゴリに分類されます。 唯一の違いは全ての領域が、 定義済みのどの領域部分にもなっていないということです。

次にもうすこし一般的な状況を考えましょう。

C.1.4.2. 未使用パーティション領域を使用

この場合は、おそらく使用するつもりのない1つまたは複数のパーティションがある状況でしょう。 多分、以前に他のOSを少し使用していて、 そのOS専用にしていたパーティションが不要になったという状態です。 図C-9ではその状態を示しています。

図 C-9. 未使用パーティションを持つディスクドライブ

図C-9では、 1は未使用のパーティションを示し、 2はLinux用に未使用パーティションの再割り当てをするところ示します。

このような状況にある場合は、 未使用のパーティションに割り当てられている領域を使用することができます。 まず、そのパーティションを削除してから、そこに 適切なLinuxパーティションを作成してください。 インストール中に手動でパーティションを作成することができるので、 新しいパーティションを作成する前にそのパーティションを削除することができます。

C.1.5. パーティションの命名体系

Linuxがディスクパーティションを表現する際には文字と数字の組合せを使用しますが、 これは特にハードディスクやパーティションを「Cドライブ」の様に表すことに 慣れている人々にとっては混乱のもとになるかもしれません。 DOSやWindowsの世界では、以下の様にしてパーティションに名前が付けられています。

  • 各パーティションのタイプがチェックされ、DOS/Windowsで読み取れるかどうか調べられます。

  • パーティションのタイプが互換性を持つものであれば、「ドライブ文字」が割り当てられます。 ハードディスクドライブの文字は「C」から始まり、ラベルを付けるパーティションの数により、 次の文字へ進みます。

  • このドライブ文字で、 パーティションとそのパーティションの中のファイルシステムを参照することができるようになります。

Red Hat Enterprise Linuxは他のOSで使用されるアプローチよりも柔軟で、 より多くの情報を伝える命名体系を使用しています。 命名体系はファイルベースであり、 /dev/xxyN のような形式のファイルを使用します。

以下にこの命名体系の解読方法を示します。

/dev/

これはディレクトリの名前です。すべてのデバイスファイルが格納されています。 パーティションはハードディスク上に存在し、ハードディスクはデバイスであるため、 すべてのパーティションを表すファイル群は、 /dev/ディレクトリ内に格納されます。

xx

パーティション名の最初の2文字は、そのパーティションが存在するデバイスのタイプを示します。 通常見かけるのは、hd (IDEディスク)、 または sd (SCSIディスク)です。

y

この文字は、パーティションがどのデバイス上にあるのかを示します。 例えば、/dev/hda(先頭の IDEハードディスク) または/dev/sdb (2番目の SCSI ディスク)などです。

N

最後の番号がパーティションを表します。 最初の4つ(プライマリまたは拡張)のパーティションには 1から4までの番号が割り当てられます。 論理パーティションは5から始まります。 例えば、/dev/hda3は3番目のプライマリまたは拡張 パーティションで、 先頭のIDEハードディスク上にあります。 /dev/sdb6 は2番目のパーティションで、 2番目のSCSIハードディスク上にあります。

注意注記
 

この命名規則の中にはパーティションタイプに 依存する部分はありません。 DOS/Windowsとは異なり、 Red Hat Enterprise Linuxでは すべてのパーティションを識別することができます。 もちろん、Red Hat Enterprise Linuxがあらゆるタイプのパーティション上のデータにアクセスできるわけではありませんが、 多くの場合、他の OS専用のパーティション上のデータにアクセスすることができます。

この情報を覚えておいてください。Red Hat Enterprise Linuxに必要なパーティションを 設定しているときに便利です。

C.1.6. ディスクパーティションと他のOS

Red Hat Enterprise Linuxパーティションが他のOSによって使用するパーティションとハードディスクを共有する状況でも、 ほとんどの場合は何も問題はありません。 ただし、Linuxと 他のOSの特定の組み合わせについては、特別に注意が必要です。

C.1.7. ディスクパーティションとマウントポイント

Linuxを始めて使用される多くの人々に取って混乱を招きやすい事柄のひとつは、 どの様に Linuxがパーティションを使い、アクセスするかと言う問題です。 これはDOS/Windowsの中では比較的簡単なことです。 各パーティションは「ドライブ文字」を持っており、 この「ドライブ文字」を使用して関連するパーティション上のファイルやディレクトリを参照します。

これはLinuxがパーティションを取り扱う方法、実際には、 一般にディスクという記憶媒体を取り扱う 方法とはまったく異なっています。 主な違いは、さまざまなパーティションが、 単一のファイル群とディレクトリ群をサポートする為に 必要な記憶媒体の一部を形成するために使用されることです。 これはマウントとして知られる処理を通じて、 パーティションと ディレクトリを関連づけることによって行われます。 パーティションをマウントすることで指定 されたディレクトリ (マウントポイントと呼ばれます) を通じてその記憶媒体が利用可能になります。

例えば、パーティション/dev/hda5/usr/ 上にマウントされているすると、 /usr/配下のすべてのファイルと ディレクトリが物理的に /dev/hda5上に存在すると言う意味になります。 したがって、ファイル/usr/share/doc/FAQ/txt/Linux-FAQ/dev/hda5に格納されますが、 ファイル/etc/X11/gdm/ Sessions/Gnomeはそこには格納されません。

この例で続けて行くと、/usr/の下にある1つまたはそれ以上の ディレクトリを他のパーティション用のマウントポイントにもすることができます。例えば、あるパーティション(/dev/hda7とする)を/usr/local/ にマウントしたとすると、 これは/usr/local/man/whatis/dev/hda7 上に存在して/dev/hda5上ではないと言う意味になります。

C.1.8. パーティションの数

Red Hat Enterprise Linuxインストールの準備のこの段階で、 新しいOSで使用するパーティションの数とサイズについて少々配慮する必要があります。 「パーティションの数」の問題はLinuxコミュニティで活発な意見が交換されていますが、 未だに解決の 糸口が見えないようです。 パーティションの数は意見の数と同じくらいに多く考えられますので、そのうち適切な数が見つかるとしておくのが無難でしょう。

これを理解して頂いた上で、とくに必要がなければ、 少なくとも次のパーティションを作成することをおすすめします。 swap/boot/( /boot/ ファイルが必要となるのはpSeriesシステムのみで、 iSeriesシステムには不要です。)、 PPC PReP Boot、、 / (root)。 注意、新しい仮想ディスクをOS/400リリースV5R2及びそれ以降で 動的に追加することができます。

詳細については項2.15.4を参照してください。

注意

[1]

図とは異なり、 ブロックのサイズは本当に極小単位で固定されています。 平均的なディスクドライブは百万単位のブロックを持っていることを覚えておいてください。 ここではわかりやすいように、説明と図の細かな矛盾は無視してください。