パーティション
出典: フリー百科事典『ウィキペディア(Wikipedia)』
パーティション(Partition)とは「仕切り」、「分割」あるいは「仕切ること」。また「分割された部分」のこと。転じて以下のような意味で使われる。
- 部屋の仕切り、衝立、間仕切り。あるいは、仕切られた空間を指す。
- ハードディスクを論理的に分割すること。あるいは、ハードディスクを分割した部分を指す。以下では、この用例について解説する。
- コンピュータシステム全体を論理的あるいは物理的に分割して使用すること。あるいはその分割した部分を指す。
コンピュータのハードディスクのパーティション(Partition)とは、ハードディスクの記憶領域を論理的に分割すること、あるいは分割された個々の領域を指す。パーティションを作成することをパーティショニング(Partitioning)とも言う。
ディスクパーティショニングは基本的な技術であり、論理ボリュームマネージャに発展したと見ることもできる。
目次 |
[編集] 目的
パーティショニングは、ひとつのハードディスク上に複数のファイルシステムを持つことを可能にする。パーティションを作成する目的として、以下のことがあげられる。
まず、基本的な3点としては
- 物理ディスクとは別に、ハードウェアにリンクした管理単位を定義し、その管理単位でのアクセスを制御することで、とあるパーティションで障害が発生しても、他パーティション及びハードディスク全体に被害が及ばないように、障害の局所化が可能となる。
- 固有パーティションにおいて、ディスクの空きが枯渇しても、全データ区分に影響が及ばないように局所化する事ができる。ただし、システム使用パーティションの一部においては、そのパーティションの残量が枯渇した場合、システム自体の動作が停止してしまうことがある。
- 用途によってパーティション分割する場合もある。例えば、ほとんど書き込まれることがないパーティションがあれば、それを読み込みのみを許可する状態で使用する(マウントする)ことも考えられる。小さなファイルを多数格納するファイルシステムは、パーティションとして独立させてiノードを多数にするような設定をすることもできる。
というものである。
その後、PC系UNIX及びWindows系(MS-DOSを含む)の発展や、PCにおけるブートローダツールなどの開発により、幾つかのポイントが追加されている。
- UNIXのマルチユーザーシステムで、ハードリンク攻撃を防ぐために /home や /tmp を別パーティションにする場合がある(スティッキービットなどと関連してハードリンクできるとセキュリティ上問題のある場合が過去にあった)。
- 技術的制限を解決するため。例えば、古いバージョンのFATファイルシステムでは管理可能な容量が制限されていた。また、古いBIOSでは、1024番目以降のシリンダーに位置するオペレーティングシステム(OS)をブートすることができなかった。
- LinuxのようなOSではスワップファイルとしてパーティションを使用することが多い。複数のOSを搭載する場合、OS間でスワップファイル用パーティションを共有することでディスク容量を節約できる。
- 2つのOSがそれぞれ固有のディスクフォーマット形式を持っていると、同じパーティションに共存することができない。このようなOSを共存させるためにはパーティションでディスクを論理的に分割する必要がある。
- 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の実装に近い設定をする事が多い。特に以下の配置において、その名残を色濃く残している。
- Linuxのパーティション設定(一般的対応)
- /boot
- /(root)
- swap
- その他/home、/tmp、/usr、/var、/opt
- などの順番にパーティションを割り付ける。
-
- UNIXの物理パーティションの特性
- UNIX系OSという括りで考えると、これはひとつのファイルシステムが壊れても、残りのデータ(他のファイルシステム)が影響を受けないのでデータ損失を最小化できるからである。細かくパーティション分割する欠点としては、例えばユーザーが /home パーティションを使い切った場合に他のパーティションには余裕があるのに処理を続行できなくなることがあげられる。そのため、各パーティションに必要なサイズを事前によく予測することが重要となり、これは困難な場合もある。デスクトップシステムでは一般に "/" (root)でスワップパーティション以外の全体をひとつのパーティションとしていることが多い。デスクトップシステムであっても/homeを別パーティションにしておくと再インストール(あるいは別のLinuxディストリビューションへの乗り換え)が簡単になる。
- 仮想パーティション(論理ボリューム)
- 論理ボリュームマネージャを使用した場合、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)
論理区画と呼ぶ場合もある
[編集] パーティションの制限
- UNIX系
- 物理パーティションとしては1ディスク当り7つ(実質6つ)であり、仮想パーティションの場合、それぞれのLVMの上限によるが、1仮想ディスク(VG)に対して256~1024程度となっている。仮想パーティションにて作成できるパーティション総数は、Linuxのディストリビューションによって上限がかけられる場合がある(例:Vine Linux 3.2 の場合はデバイス番号16まで、Fedora Core 5 の場合はデバイス番号15までという制限がある場合がある)。
- 実際の仕様では、Linuxで採用されているVERITAS社(HP-UX互換)互換LVMにおいては、ソフトウェア的な制限は256(HP-UX11.0ベースのため、1024にはなっていない)となっている。
- Windows系
- PC/AT互換機においては、ベースのIBM機の制限が残っており、基本パーティションは、一つのハードディスクに合計4個しか作成できない。これは、ハードディスク先頭セクタに配置されているマスターブートレコード(MBR)内のパーティションテーブルが、4個の領域分しか無いからである。
- 拡張パーティションは、一つのハードディスクに一つだけ作成できる、特殊な基本パーティションである。ここにドライブレターが割り当てられることは無く、直接データを保存することも出来ない。論理パーティションを入れるためだけの、いわば容器のようなものである。
- 論理パーティションは、拡張パーティション内でのみ作成が可能であり、作成できる総数に制限は無い。
[編集] ファイルシステムの作成
基本パーティションおよび論理パーティションはファイルシステムを持つことが出来る。通常はファイルシステムを作成しない限り、そのパーティションを利用することが出来ない。 Solarisを除くUNIX系の場合、論理ボリュームマネージャを使用するのが一般的である。インストール時にrootvgを定義し、その中に論理ボリュームを定義してマウントする。 論理ボリュームマネージャを使用しない場合、Format系コマンドにてFormat後にパーティションを定義し、それぞれのマウントポイントを設定する。
Windows 2000、Windows XP ではパーティションの作成と同時にファイルシステムを作成することが可能であるが、Windows 9x系やLinuxではパーティション作成後に別途ファイルシステムを作成する必要性がある。
[編集] PC/AT互換機における標準的なパーティション分割の例
- 右図の(例1)で示すように、一つのハードディスク内に4個の基本パーティションを作成することが出来る。また、(例2)のように、そのうち一個を拡張パーティションとして、内部に論理パーティションを作成することも出来る。
- (例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など
[編集] 関連項目
[編集] 外部リンク
- パーティションとその切り方
- QTParted, a partition manager(英語).
- GParted, a partition manager(英語)
- GNU Parted, a command line partition manager(英語)