注意
ゲストOSがCentOS7ではエラーになるそうです。タグにもありますがこの投稿はCentOS6.6のお話です。
CentOS7の方はこちらの CentOS 7(XFS)でLVMディスク拡張でハマったこと で投稿されているようです。
ゲストOSのディスク拡張
年に1回やるかやらないかの作業(コマンド)なので備忘録的に記録。
作業場場所移動
まずはホストOS側でゲストOSの場所へ移動。もちろんこのときVMは停止しておきます。
コマンドプロンプトから以下のコマンド
C:\Users\[user]> cd C:\VirtualBox VMs\centos
バックアップ
まずはバックアップですね。これはそこそこ時間かかります。
ゲストOSに centos
とつけたのでフォルダもvdiもそうなってます。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" clonehd centos.vdi centos_bak.vdi
C:\VirtualBox VMs\centos> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" cl
onehd centos.vdi centos_bak.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ディスク拡張
元のサイズが16Gだったので32Gにしたい、コマンドの指定がM(メガ)なのでresizeに32768
を指定
これでディスク自体は倍に拡張。このコマンドがディスクのタイプがすぐに領域を取るタイプでなかったのか、一瞬で終了。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd --resize 32768 centos.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
サイズ確認
ゲストOSを起動後、変わっていないのを確認。
OSは元の領域を使っているので変わらない。
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
14G 11G 2.6G 80% /
tmpfs 940M 0 940M 0% /dev/shm
/dev/sda1 477M 64M 388M 15% /boot
パーティション作成
シリンダのところはデフォルトで改行。
# fdisk /dev/sda
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
p
パーティション番号 (1-4): 3
最初 シリンダ (2089-4177, 初期値 2089):
初期値 2089 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (2089-4177, 初期値 4177):
初期値 4177 を使います
パーティション確認
/dev/sda3
ができていることを確認。
コマンド (m でヘルプ): p
ディスク /dev/sda: 34.4 GB, 34359738368 バイト
ヘッド 255, セクタ 63, シリンダ 4177
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000eef80
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 2089 16264192 8e Linux LVM
/dev/sda3 2089 4177 16774536+ 83 Linux
パーティションタイプを変更
Linux LVM
に変更。
コマンド (m でヘルプ): t
パーティション番号 (1-4): 3
16進数コード (L コマンドでコードリスト表示): 8e
領域のシステムタイプを 3 から 8e (Linux LVM) に変更しました
コマンド (m でヘルプ): p
ディスク /dev/sda: 34.4 GB, 34359738368 バイト
ヘッド 255, セクタ 63, シリンダ 4177
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O size (minimum/optimal): 512 bytes / 512 bytes
ディスク識別子: 0x000eef80
デバイス ブート 始点 終点 ブロック Id システム
/dev/sda1 * 1 64 512000 83 Linux
パーティション 1 は、シリンダ境界で終わっていません。
/dev/sda2 64 2089 16264192 8e Linux LVM
/dev/sda3 2089 4177 16774536+ 8e Linux LVM
変更保存
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
カーネルはまだ古いテーブルを使っています。新しいテーブルは
次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
使えるようになるでしょう
ディスクを同期しています。
#
ゲストOS再起動
# reboot
Physical Volume作成
# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
Volume GroupへPhysical Volumeを追加
vgdisplay
でグループ名が vg_centos
であることを確認して以下のコマンド
# vgextend vg_centos /dev/sda3
Volume group "vg_centos" successfully extended
Logical Volumeを増やす。
df
で表示されているマウントポイントへ以下のコマンド。
# lvextend -l +100%FREE /dev/mapper/vg_centos-lv_root
Size of logical volume vg_centos/lv_root changed from 13.91 GiB (3561 extents) to 29.91 GiB (7656 extents).
Logical volume lv_root successfully resized
ファイルシステムのリサイズ
ここでも df
で表示されたマウントポイントを指定してサイズが増えます。
# resize2fs /dev/mapper/vg_centos-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/vg_centos-lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/vg_centos-lv_root to 7839744 (4k) blocks.
The filesystem on /dev/mapper/vg_centos-lv_root is now 7839744 blocks long.
増えたことを確認
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos-lv_root
30G 9.5G 19G 35% /
tmpfs 940M 0 940M 0% /dev/shm
/dev/sda1 477M 64M 388M 15% /boot