2012年9月14日

Resize(Shrink) image size

大部份 resize VM image的文章都是講怎麼 expand, 讓既有的VM繼續長大; 這次我的需求是要從一個VM刪除掉多餘的資料以作出base image.
我用到 libguestfs-tools, 用途是直接操作image,  可以對image做resize, shrink, e2fsck, ... Centos底下只要 
yum install libguestfs-tools

就裝好了, 方便~

假設我要操作下面的image
-rw-r--r-- 1 root root  24009768960 2012-09-14 12:06 test.qcow2

下指令
virt-df test.qcow2

輸出
Filesystem                                              1K-blocks          Used    Available  Use%
test.qcow2:/dev/sda1                                   495844        69897       400347    15%
test.qcow2:/dev/vg_qatest30g/lv_root     24391548    2770760   20381748    12%

/dev/vg_qatest30g/lv_root 有 30G 左右, 準備把它縮到 5G 上下.
執行inter-active的console
guestfish -a test.qcow2

接著跑指令
> run
> resize2fs-size /dev/vg_qatest30g/lv_root 5G
libguestfs: error: resize2fs_size: resize2fs 1.41.12 (17-May-2010)
Please run 'e2fsck -f /dev/vg_qatest30g/lv_root' first.

出現error了, 希望你先執行e2fsck , 我直接照抄執行, 

> e2fsck -f /dev/vg_qatest30g/lv_root
e2fsck: unknown optional argument "/dev/vg_qatest30g/lv_root"

無效....?

> e2fsck-f /dev/vg_qatest30g/lv_root 

居然特別給了一個 -f 的版本....
再下 resize2fs-size...

> resize2fs-size /dev/vg_qatest30g/lv_root 5G

沒噴錯誤, 離開互動界面

> exit

試一下disk size 是不是改了

virt-df test.qcow2
Filesystem                                               1K-blocks         Used  Available  Use%
test.qcow2:/dev/sda1                                    495844       69897     400347    15%
test.qcow2:/dev/vg_qatest30g/lv_root        5160896   2758616   2140136    54%

變 5G 了!
把VM開機測測看...

virsh start base-image

登入也沒問題, 看起來是 ok

沒有留言: