コンピュータのハードディスクのパーティション (Partition) とは、ハードディスクの記憶領域を論理的に分割すること、あるいは分割された個々の領域を指す。パーティションを作成することをパーティショニング (Partitioning) ともいう。

ディスクパーティショニングは基本的な技術であり、論理ボリュームマネージャに発展したと見ることもできる。

## 目的

パーティショニングは、ひとつのハードディスク上に複数のファイルシステムを持つことを可能にする。パーティションを作成する目的として、以下のことがあげられる。

まず、基本的な3点としては

- 物理ディスクとは別に、ハードウェアにリンクした管理単位を定義し、その管理単位でのアクセスを制御することで、とあるパーティションで障害が発生しても、他パーティション及びハードディスク全体に被害が及ばないように、障害の局所化が可能となる。
- 固有パーティションにおいて、ディスクの空きが枯渇しても、全データ区分に影響が及ばないように局所化する事ができる。ただし、システム使用パーティションの一部においては、そのパーティションの残量が枯渇した場合、システム自体の動作が停止してしまうことがある。
- 用途によってパーティション分割する場合もある。例えば、ほとんど書き込まれることがないパーティションがあれば、それを読み込みのみを許可する状態で使用する(マウントする)ことも考えられる。小さなファイルを多数格納するファイルシステムは、パーティションとして独立させてiノードを多数にするような設定をすることもできる。

というものである。

その後、PC系UNIX及びWindows系(MS-DOSを含む)の発展や、PCにおけるブートローダツールなどの開発により、幾つかのポイントが追加されている。

- UNIXのマルチユーザーシステムで、ハードリンク攻撃を防ぐために /home や /tmp を別パーティションにする場合がある。
- 技術的制限を解決するため。例えば、古いバージョンのFATファイルシステムでは管理可能な容量が制限されていた。また、古いBIOSでは、1024番目以降のシリンダーに位置するオペレーティングシステム (OS) をブートすることができなかった。
- LinuxのようなOSではスワップファイルとしてパーティションを使用することが多い。複数のOSを搭載する場合、OS間でスワップファイル用パーティションを共有することでディスク容量を節約できる。
- 2つのOSがそれぞれ固有のディスクフォーマット形式を持っていると、同じパーティションに共存することができない。このようなOSを共存させるためにはパーティションでディスクを論理的に分割する必要がある。
- Classic Mac OSのHFSは、パーティションのサイズに比例した単位でファイルをディスクに書き込む。そのため、パーティションサイズが大きいと書き込み単位が大きくなりディスク領域を無駄にしてしまう。これを防ぐには、小さめのパーティションでディスクを分割する必要があった。

などである。

## 概要

### UNIX

UNIXの場合、論理ボリュームマネージャを使用した仮想パーティションと実際に物理ディスクを区切る一般的なパーティションがある。

#### 物理パーティション

まずディスクの一般パーティション管理情報は、ディスクの先頭領域にVTOC情報として記載される。この情報は、SVR4系においてはprtvtocコマンドにて第2パーティションを示すスペシャルファイル名指定で表示することが可能。また、fmthardコマンドにてこの情報を取り込むことも可能である。

この情報は、パーティション番号とスタートシリンダ番号とエンドシリンダ番号、書き込み読み込みモードといった情報が記録されており、直接、ディスクのハードウェア構成に依存する情報となっている。Unix系のパーティション管理はディスクの価格が高く、容量の限られた時代の管理方式を色濃く残しており、1ディスクに7パーティションだけ作成できるものであった。

一般にパーティション設定は以下のようなものが多い。

- ディスク先頭エリアにVTOCを設定
- パーティション0番:/ (root)
- パーティション1番:swap領域
- パーティション2番:ディスク全体を示すOverVIewパーティション
- パーティション3番以降:/usr,/var,/opt,/home,/tmp

という設定が行われる。

UNIXの場合、PC及びPC上のUnix系OSと異なり、IPL(初期プログラムローダ)が/root配下などに置かれるvmunix(仮想メモリを実装したUNIXという意味)カーネルをロードし、メモリに展開する。

PCにおけるLinuxなどのUnix系OSでの一般的なパーティション分割も、UNIXの実装に近い設定をする事が多い。特に以下の配置において、その名残を色濃く残している。

#### 仮想パーティション(論理ボリューム)

論理ボリュームマネージャを使用した場合、1つのボリュームグループ (VG) に物理ディスク(PV又はPE)を登録し、論理ボリューム (LV) という仮想パーティションを定義する事ができる。また、この仮想パーティションは動的に拡張/縮退が可能であり、運用上、システムの停止をする事無く、対応することができる。

### Microsoft Windows

Windowsでの一般的なパーティション構成は、1つのパーティション、いわゆるCドライブである。そこにOSもプログラムもデータも全て格納する。しかし、パーティション(あるいはドライブ)を複数用意して、OS用のひとつのパーティション以外をアプリケーション等に割り当てることが望ましい。可能ならば、ページングファイルのための別個のパーティションを用意して、これをOSとは異なるディスクドライブに置くべきである。OSをCドライブ以外に置くようなパーティション構成も不可能ではなく、トロイの木馬が固定のパス名でファイルアクセスしようとする場合に有効な場合もある。

Windows 2000や、Windows XP の Windows NT系 OSでは、論理ディスクマネージャを用いて NTFS 上の任意のフォルダに別のパーティションをマウントすることができる。例えば、ユーザーのホームディレクトリである「My Documents」フォルダに、別のパーティションをマウントしたりすることができる。

## パーティションの種別

### UNIX機でのパーティション種別

- 物理パーティション
- 論理パーティション(仮想パーティション) - 論理ボリュームと呼ぶ場合が多い

### PC/AT互換機のパーティションの種類

- 基本パーティション (Primary Partition) - 基本区画と呼ぶ場合もある
- 拡張パーティション (Extended Partition) - 拡張区画と呼ぶ場合もある
- 論理パーティション (Logical Partition) - 論理区画と呼ぶ場合もある

### ファイルシステムの作成

基本パーティションおよび論理パーティションはファイルシステムを持つことが出来る。通常はファイルシステムを作成しない限り、そのパーティションを利用することが出来ない。

Solarisを除くUnix系の場合、論理ボリュームマネージャを使用するのが一般的である。インストール時にrootvgを定義し、その中に論理ボリュームを定義してマウントする。論理ボリュームマネージャを使用しない場合、Format系コマンドにてFormat後にパーティションを定義し、それぞれのマウントポイントを設定する。

Windows 2000、Windows XP では、パーティションの作成と同時にファイルシステムを作成することが可能であるが、Windows 9x系やLinuxではパーティション作成後に別途ファイルシステムを作成する必要性がある。

## PC/AT互換機における標準的なパーティション分割の例

- 右図の(例1)で示すように、1つのハードディスク内に4個の基本パーティションを作成することが出来る。また、(例2)のように、そのうち1個を拡張パーティションとして、内部に論理パーティションを作成することも出来る。
- (例3)で示すように、拡張パーティション内に複数の論理パーティションを作成することも出来る。
- (例3)で示すように、基本パーティションと拡張パーティションの総数は4個以内であればよい(この例では2個)。

なお、右図での色分けは赤:マスターブートレコード、水色:基本パーティション、橙:拡張パーティション、緑:論理パーティション、黒:ハードディスク全体である。また、パーティション内に振られている数字は、Linuxでのデバイス番号である。

## コマンド関連

### PC/AT互換機パーティション関連ユーティリティ一覧

- cfdisk
- DiskDrake
- fdisk
- FIPS
- GNU Parted

### 主なパーティション作成コマンド

- Unix系では、それぞれのベンダが提供する物理Formatコマンドにより、パーティションを定義し、VTOC情報を書き込む。論理ボリュームマネージャを使用する場合、rootvg定義後にlvを切る作業が行われ、VG情報とLV情報が物理ディスクの先頭管理領域に書き込まれる。この情報はエクスポートして、別途保存することが可能であり、ディスク障害時にはインポートして、管理情報をシステムに取り込む事が可能となっている。
- Windows 2000やWindows 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など