Linux:virt-managerで作った仮想環境のディスクサイズを大きくするのとresizef2fsでext4側でのサイズ変更めも

実験用だと思って適当に作ったらディスクのサイズが足りなかったので手順のメモ。virt-managerで仮想環境を作って、仮想環境のOSはLinuxファイルシステムはLVMなしのext4という状態。行うことはディスクイメージの拡張と、Linux側でパーティションを作りなおしてresizef2fsでファイルシステムのリサイズ。
あ、再度手順確認がてらこのblogを書いたので容量に空きがある状態からサイズ拡張してますが。

以下、プロンプトのホスト名でlinux-tipは仮想環境、sagaはホスト。
まず仮想環境上で現在のディスクサイズ見てみると20Gとなっているのが確認できる。

[masami@linux-tip ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
vda    254:0    0   20G  0 disk
`-vda1 254:1    0   20G  0 part /

仮想環境は一旦shutdownしてホスト側でディスクの確認。ストレージ周りを特にいじっていなければpoolはdefaultが使われているはずなので、vol-listのpoolオプションにはdefaultを渡す。そうするとdefaultのイメージが見れる。今回サイズ変更したいのはlinux-tip.qcow2。

masami@saga:~$ sudo virsh vol-list --pool default
[sudo] password for masami:
 Name                 Path
------------------------------------------------------------------------------
 archlinux-2014.05.01-dual.iso /var/lib/libvirt/images/archlinux-2014.05.01-dual.iso
 kerntest.img         /var/lib/libvirt/images/kerntest.img
 linux-tip.qcow2      /var/lib/libvirt/images/linux-tip.qcow2
 netbsd.img           /var/lib/libvirt/images/netbsd.img

vol-infoでディスクの内容を確認。こちらも20GiBとなっている。

masami@saga:~$ sudo virsh vol-info --vol /var/lib/libvirt/images/linux-tip.qcow2
Name:           linux-tip.qcow2
Type:           file
Capacity:       20.00 GiB
Allocation:     1.17 GiB

vol-resizeでサイズを40GiBに拡張。このコマンドはpool名を渡すのでdefaultを渡す。

masami@saga:~$ sudo virsh vol-resize linux-tip.qcow2 40G --pool default
Size of volume 'linux-tip.qcow2' successfully changed to 40G

vol-resizeが成功したら仮想環境を起動してログイン。まずはディスクの状態を見てみる。ディスクサイズが40Gになり、vda1が20Gで設定されていて、20G分の拡張に成功しているのが分かる。

[masami@linux-tip ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
vda    254:0    0   40G  0 disk
`-vda1 254:1    0   20G  0 part /

このvda1は作りなおす必要があるのでcfdiskで既存のパーティションを消し、新たに1つのパーティションを作成する。cfdiskを起動した段階でvda1に20G、free領域として20Gが見えているのでvda1のほうを消して、free領域40Gになったところでnewで新規に作る感じ。パーティションを設定したらWriteで書き込んで終了という基本通りの手順を行う。

[masami@linux-tip ~]$ sudo cfdisk /dev/vda

パーティションの再作成が済んだらresize2fsコマンドでfsの拡張を行う。問題が無けれが下記のように出力されて終了する。

[masami@linux-tip ~]$ sudo resize2fs /dev/vda1 40G
resize2fs 1.42.10 (18-May-2014)
The containing partition (or device) is only 5242872 (4k) blocks.
You requested a new size of 10485760 blocks.

そしたら再起動してログインし、再度lsblkを実行するとvda1のサイズが40Gになっていて拡張成功( ´∀`)bグッ!

[masami@linux-tip ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom
vda    254:0    0   40G  0 disk
`-vda1 254:1    0   40G  0 part /