本ページでは、CentOSのパーティションの概念について説明します。

パーティションとは

パーティションとは、ディスク領域を論理的に分割した領域のことを指します。1つのディスクは最低1つのパーティションを持ちます。

パーティションの種類

パーティションは、1つまたは複数のストレージデバイスの内容を論理的に区切るための区画として使用されます。以下の種類のパーティションがあります。

基本パーティション

通常はこの形式を使用します。1つのディスク内に4つまで作成できます。システム上で起動するOSファイルは、この基本パーティションにインストールする必要があります。

拡張パーティション

拡張パーティションは、自身の内部に後述する論理パーティションを複数持ちます。基本パーティションの1つを拡張パーティションとして使用できます。

論理パーティション

拡張パーティションの中に作成できるパーティションです。論理パーティションの最大数は12です。
基本パーティションとあわせると、1台のディスクの中で作成できる最大パーティション数は、
基本パーティション:3 + 論理パーティション:12 = 15 となります。(/dev/sda1/dev/sda15)

現在のパーティションの確認

現在のパーティションを確認するには、parted -lコマンドを実行します。
以下は、サーバに接続している1つ目のディスクを示すデバイスファイル/dev/sdaのパーティション一覧を表示させた例です。ディスク全体容量が53.7 GBで、内部に3つのパーティションが存在していることがわかります。

# parted -l
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始    終了    サイズ  ファイルシステム  名前                  フラグ
 1    1049kB  211MB   210MB   fat16             EFI System Partition  boot
 2    211MB   1285MB  1074MB  xfs
 3    1285MB  53.7GB  52.4GB                                          lvm
(略)

パーティションの作成

新たに追加したディスクにパーティションを追加するには、partedコマンドを使用します。引数にデバイスファイルを指定すると、対話モードに移行します。
以下の例では、サーバに接続している2つ目のディスクである/dev/sdbに対して、パーティション操作を行います。(parted)のプロンプト文字列が出たら、対話モードへの移行が完了です。

# parted /dev/sdb
GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) 

初回のみ、パーティションの管理情報であるディスクラベル(パーティションテーブル)の作成を行います。
ディスクラベルの種類はいくつかありますが、最近のLinux OSであればgptを選択すればよいでしょう。

(parted) mklabel                                                          
新しいディスクラベル? gpt ←gptを入力
警告: いま存在している /dev/sdb のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? Y ←Yを入力

対話モードでprintコマンドを実行すると、現在のディスク上のパーティション一覧が表示されます。新規に導入するディスクの場合は、パーティションが何も表示されないはずです。
既にパーティションが存在する場合は、rm <パーティション番号>でパーティションを削除することが可能です。

(parted) print                                                            
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始  終了  サイズ  ファイルシステム  名前  フラグ

パーティションを作成する前に、unitコマンドを実行してディスクのユニット単位をMB(メガバイト)に指定します。この操作により、パーティションを作成するときにMB単位で領域を指定できます。

(parted) unit MB

mkpartコマンドで、パーティションを作成します。
パーティションの名前は、空欄のままで問題ありません。
ファイルシステムの種類は、通常のLinux用パーティションであればxfsを指定します。swap領域に使いたい場合は、linux-swapを指定します。
パーティションが何もない状態で10GBの領域を確保する場合、開始は0、終了は10000を指定します。開始を0にした場合、途中で警告が表示されますが、無視して進めると自動的に開始位置が問題ない数値に修正されます。
パーティション作成後、printコマンドを実行すると、10GBのパーティションが1番として作成されていることが確認できます。

(parted) mkpart                                                           
パーティションの名前?  []? ←何も入力せずEnterキーを押下
ファイルシステムの種類?  [ext2]? xfs ←xfsを入力
開始? 0 ←パーティションの終了位置をMB単位で入力
終了? 10000 ←パーティションの終了位置をMB単位で入力
警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? I ←Iを入力

(parted) print                                                            
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 53687MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始    終了     サイズ   ファイルシステム  名前  フラグ
 1    0.02MB  10000MB  10000MB

さらにパーティションを作成する場合は、続けてmkpartコマンドを実行します。
1つ目のパーティションの直後に次のパーティションを作成したいので、開始位置は10000を指定します。
パーティション作成後、printコマンドを実行すると、10GBのパーティションが2番として作成されていることが確認できます。

(parted) mkpart                                                           
パーティションの名前?  []? ←何も入力せずEnterキーを押下
ファイルシステムの種類?  [ext2]? xfs ←xfsを入力
開始? 10000 ←パーティションの終了位置をMB単位で入力
終了? 20000 ←パーティションの終了位置をMB単位で入力
警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? I ←Iを入力

(parted) print                                                            
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 53687MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ: 

番号  開始    終了     サイズ   ファイルシステム  名前  フラグ
 1    0.02MB   10000MB  10000MB
 2    10000MB  20000MB  10000MB

パーティションの作成が完了したら、quitコマンドでpartedの対話モードを抜けます。

(parted) quit                                                             
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

なお、パーティションを作成しただけでは、データの読み書きはできません。パーティション上にファイルシステムを作成する必要があります。