ハードディスクのパーティションとは
ハードディスクのパーティションとは、物理的な記憶領域を論理的に分割すること、またはその分割された領域そのものを指します。この分割を行う作業は「パーティショニング」と呼ばれ、基本的な技術でありながら、
論理ボリュームマネージャへと発展する重要な概念です。
パーティション分割の目的
パーティション分割の主な目的は、一つのハードディスク上に複数の
ファイルシステムを共存させることです。具体的には以下のような点が挙げられます。
障害の局所化: あるパーティションで障害が発生した場合でも、他のパーティションやハードディスク全体への影響を最小限に抑えることができます。これにより、システム全体の安定性が向上します。
容量管理: パーティションごとに利用できる容量を区切ることで、特定のパーティションの容量不足が他のパーティションに影響を与えるのを防ぎます。ただし、システムが使用するパーティションの容量が枯渇すると、システム自体が停止する可能性があります。
用途別の管理: 用途に応じてパーティションを分割することで、例えば、読み込み専用のパーティションを作成したり、小さなファイルを多数格納するために最適化されたパーティションを作成することができます。
さらに、OSやファイルシステムの制限を回避するためにもパーティション分割は重要です。
UNIX系システム: マルチユーザー環境で、セキュリティ上の理由から`/home`や`/tmp`を別のパーティションに分割する場合があります。また、古いFAT
ファイルシステムの容量制限や、古いBIOSの
ブート制限を回避するためにも用いられました。
OSの共存: 異なるOSを一つのハードディスクにインストールする場合、それぞれのOSが異なるファイルシステムを使用しているため、パーティションを分割する必要があります。また、LinuxなどのOSでは、スワップ領域としてパーティションを使用することが一般的です。
ファイルシステムの特性:
Classic Mac OSのHFS
ファイルシステムのように、パーティションサイズが大きすぎるとディスク領域を無駄にする場合、小さめのパーティションに分割する必要があります。
パーティションの概要
UNIX系システムのパーティション
UNIX系システムでは、物理パーティションと
論理ボリュームマネージャによる仮想パーティションが存在します。物理パーティションはディスクの先頭領域にVTOC情報として記録され、パーティション番号、開始/終了シリンダ、書き込み/読み込みモードなどの情報を含みます。初期の
UNIXシステムでは、1つのディスクに7つまでのパーティションしか作成できませんでした。
一般的には、以下のようにパーティションが設定されます。
0番: `/` (root)
1番: スワップ領域
2番: ディスク全体の概要を示すパーティション
3番以降: `/usr`, `/var`, `/opt`, `/home`, `/tmp`など
UNIX系OSでは、IPL(初期プログラムローダ)が`/root`配下のカーネルをロードし、メモリに展開します。
Linuxなどの
Unix系OSでは、この設定に近いパーティション分割が採用されることが多いです。
Linuxのパーティション設定例
`/boot`
`/` (root)
スワップ領域
その他: `/home`, `/tmp`, `/usr`, `/var`, `/opt`など
UNIX系物理パーティションの特性
パーティションを分割することで、一つの
ファイルシステムが破損した場合でも、他のデータへの影響を最小限に抑えられます。しかし、細かく分割しすぎると、特定のパーティションの容量が不足した場合に他のパーティションに余裕があっても処理が続行できなくなることがあります。そのため、パーティションのサイズを事前に予測することが重要です。デスクトップシステムでは通常、スワップパーティション以外を一つのパーティションとして利用することが多いですが、`/home`を別パーティションにすることで、再インストール時などの設定のやり直しを最小限に抑えることができます。
仮想パーティション(論理ボリューム)
論理ボリュームマネージャを使用すると、物理ディスクをボリュームグループに登録し、論理ボリュームという仮想パーティションを定義できます。この仮想パーティションは、システムの停止を必要とせずに動的に拡張/縮小が可能です。
Windowsでは、一般的にCドライブという1つのパーティションにOS、プログラム、データがすべて格納されます。しかし、複数のパーティションを作成して、OS用とアプリケーション用に分けることが推奨されます。また、ページングファイル用のパーティションを別の物理ドライブに配置することで、システムのパフォーマンスを向上させることができます。
パーティションの種類
UNIX系では、物理パーティションと論理ボリューム(仮想パーティション)の区別があります。
PC/AT互換機|PC_AT互換機では、基本パーティション、拡張パーティション、論理パーティションという種類があります。
基本パーティション: プライマリパーティションとも呼ばれ、1つのハードディスクに最大4つまで作成できます。
拡張パーティション: 1つのハードディスクに1つだけ作成でき、直接データを保存することはできません。論理パーティションを格納するための容器のような役割を果たします。
論理パーティション: 拡張パーティション内にのみ作成できるパーティションで、理論的には作成できる数に制限はありません。
パーティションの制限
UNIX系: 物理パーティションは1ディスクあたり7つまで。仮想パーティションはLVMの制限によるが、256から1024程度。
Linuxディストリビューションによって上限がかけられている場合がある。
PC/AT互換機|PC_AT互換機: BIOSベースでは、基本パーティションは4つまで。1ドライブの最大容量は2TiB。拡張パーティションは1つ、論理パーティションは再帰的な構造で、OSの制限に依存。GPT形式ではこれらの制限が緩和されています。
PC-9800系 : 設計上は32GiBまでだが、BIOSの制限により4GiB程度となっている。
基本パーティションや論理パーティションは
ファイルシステムを持つことで利用可能になります。通常、
Solarisを除く
Unix系では、
論理ボリュームマネージャを使用します。Windows 2000以降では、パーティション作成と同時に
ファイルシステムを作成できますが、
Windows 9x系や
Linuxでは、パーティション作成後に別途
ファイルシステムを作成する必要があります。
例1: 1つのハードディスクに4つの基本パーティションを作成
例2: 1つの基本パーティションを拡張パーティションとして、内部に論理パーティションを作成
例3: 拡張パーティション内に複数の論理パーティションを作成
基本パーティションと拡張パーティションの合計は4つ以内。
コマンド関連
PC/AT互換機|PC_AT互換機パーティション関連ユーティリティ: `cfdisk`, `DiskDrake`, `fdisk`, `FIPS`, `GNU Parted`など
主なパーティション作成コマンド: Unix系はベンダー提供のFormatコマンド。論理ボリュームマネージャはrootvg定義後にlvを切る作業。Windows 2000/XPは論理ディスクマネージャ。Windows 9x/MS-DOSはfdisk。Linuxはfdiskまたはparted
サポートされている主なファイルシステム:
Unix系はUFS, BFS, ジャーナル
ファイルシステム。
Windows 9x系はFAT16, FAT32。Windows NT系はFAT16, FAT32, NTFS。
Linuxはext2, ext3, FAT16, FAT32, (NTFS)
*
主なファイルシステム作成コマンド:
Windows 9x系/
MS-DOSはformat、
Linuxはmkfs、商用
UNIXはmkfs/newfsなど
まとめ
ハードディスクのパーティション分割は、ストレージを効率的に管理し、システムの安定性を高めるための重要な技術です。異なるOSや
ファイルシステムを共存させるだけでなく、障害の局所化、容量管理、用途別の管理など、様々なメリットがあります。適切なパーティション分割を行うことで、システムのパフォーマンスと安定性を最大限に引き出すことができます。