kvm虚拟化镜像管理的那些事

一 如何缩小一个镜像的分区

 

假设有一个镜像,大小是40G
1 先用guestfish缩小镜像的文件系统
 
guestfish -a w2k8.img
run
ntfsresize-size /dev/vda1 29G
quit
 
2 使用virt-resize 缩小镜像
qemu-img create -f raw w2k8.img.29G 
virt-resize --shrink /dev/vda1 w2k8.img w2k8.img.29G 
 
二 突然不能扩展或者缩小镜像
 
突然不能扩展或者缩小镜像,报错如下:
Fatal error: exception Guestfs.Error("ntfsresize_opts:
通常原因是因为镜像的文件系统有错误,将镜像挂载到虚拟机上,重新运行chkdsk检查文件系统,一般可以修复。
 
三 ntfs分区在linux下的检查
1 安装最新的ntfs-3g
wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2012.1.15.tgz
tar -zxvf ntfs-3g_ntfsprogs-2012.1.15.tgz
cd ntfs-3g_ntfsprogs-2012.1.15
./configure --bindir=/usr/bin
make
make install
2 检查
注意这样的方式只能检查raw格式的镜像,如果是qcow2的,目前暂时还不行。
losetup /dev/loop0 /w2k8.img
kpartx -av /dev/loop0
ntfsfix -b -d /dev/mapper/loop0p1 
参数 -b -d非常重要!
ntfsck /dev/mapper/loop0p1 
kpartx -dv /dev/loop0
losetup -d /dev/loop0
四 如何挂载qcow2格式的镜像,一条命令搞定!
guestmount -a w2k8.qcow2 -m /dev/vda1 /mnt/win
 

你可能感兴趣的:(分区,镜像,虚拟化,缩小)