CentOS7 新規ボリューム追加

VirtualBox のCentOS7 にXウィンドウズをインストールしようとしたら容量が足りず検索したところ、[設定]-[ストレージ]から新規ストレージの追加ができるようなので試みました。

が、しかしOSインストール時にパーティションを「標準パーティション」、「ext4」で作ってしまったので論理ボリューム拡張できずここで詰みました。CentOS7 のデフォルトは「xfs」だったのですね。CentOS7以前のresize2fs コマンドが通らずエラーが出るのでハマりました。xfs_growfs コマンドを通すためフォーマットも「LVM」、「xfs」でOSインストールからやり直しです。(うわぁ~ん

改めてOS再インストール後、新規ボリューム作成。

[コントローラー: SATA] を選択すると下のアイコンから追加ボタンが現れるのでウィザードから[新規追加]していきます。[ハードディスクのファイルタイプ] は私の場合、[VDI] で作ったので[VDI] にチェックして次へ。

[仮想ハードディスクファイル] に適当な名前を付けて容量を8GB と多めに取りました。[作成] ボタンをクリックしてOSを起動します。

# ll /dev/sd*

とコマンドするとストレージに/dev/sdb が追加されていることが確認できます。

これから新規ディスクにパーティションを作って論理ボリューム拡張して容量を増やしていきます。まず、fdisk /dev/sdb から。

# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x31600b47.
コマンド (m でヘルプ):

プロンプトで p と打つとパーティションが確認できます。はい、何もありませんね。

コマンド (m でヘルプ): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x31600b47

デバイス ブート 始点 終点 ブロック Id システム

コマンド (m でヘルプ):

新しくパーティションを作成していきますのでプロンプト n と打ちます。

コマンド (m でヘルプ): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):

Primary かextended か聞かれるのでprimary の p です。

Select (default p): p
パーティション番号 (1-4, default 1): 1

パーティション番号は、1 と入力します。次にセクター番号を設定します。開始を2048 、終了を16777215 とします。

最初 sector (2048-16777215, 初期値 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, 初期値 16777215): 16777215
Partition 1 of type Linux and of size 8 GiB is set

コマンド (m でヘルプ):

再び、p で確認すると/dev/sdb1 が作られていることが確認できます。

コマンド (m でヘルプ): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes, 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
Disk label type: dos
ディスク識別子: 0x31600b47

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 2048 16777215 8387584 83 Linux

コマンド (m でヘルプ):

プロンプトから t でパーティションの種類(8e)を選択します。

コマンド (m でヘルプ): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

プロンプトから w で設定を書き込みます。

コマンド (m でヘルプ): w
パーティションテーブルは変更されました!

ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。

ここからpvcreate コマンドで物理ボリューム作成、vgextend コマンドからボリュームグループ拡張、lvextend コマンドから論理ボリューム拡張して、

xfs_growfs /dev/cl/root でルートディレクトリを拡張していきます。

df でルートの使用率を見ると、36%から16%に空き容量が増えました。