本ページでは、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 を更新するのを忘れないようにしてください。
なお、パーティションを作成しただけでは、データの読み書きはできません。パーティション上にファイルシステムを作成する必要があります。