在基於qcow2格式的虛擬機中進行刪除文件操作后,物理磁盤文件並不會變小。可以用以下方法對磁盤文件瘦身。
linux客戶機
1、使用dd命令將客戶機未使用的磁盤空間用0填滿
1
2 |
$dd if=/dev/zero of=~/junk dd: writing to `/home/***/junk': No space left on device |
2、然后
1
|
$rm junk
|
3、關閉客戶機
4、轉換磁盤鏡像文件
1
|
$qemu-img convert -O qcow2 centos7.qcow2 centos7_new.qcow2
|
轉換完成后可以看到centos7_new.qcow2占用的KVM主機存儲空間與客戶機使用的磁盤空間基本是一致的。然后用新的磁盤鏡像文件centos7_new.qcow2啟動客戶機即可。
windows客戶機
1、刪除不需要的文件,清理系統垃圾,然后整理磁盤碎片
2、下載SDelete,借助sdelete用0來填充未使用硬盤空間
查看sdelete幫助
1
2 3 4 5 6 7 8 9 10 11 12 13 |
C:\
>sdelete SDelete - Secure Delete v1.6 Copyright (C) 1999-2010 Mark Russinovich Sysinternals - www.sysinternals.com usage: sdelete.exe [-p passes] [-s] [-q] ... sdelete.exe [-p passes] [-z|-c] [drive letter] ... -a Remove Read-Only attribute -c Clean free space -p passes Specifies number of overwrite passes (default is 1) -q Don't print errors (Quiet) -s or -r Recurse subdirectories -z Zero free space (good for virtual disk optimization) |
用0填充C分區空閑區域
1
|
C:\
>sdelete -z c
|
3、關閉客戶機
4、最后在KVM主機上轉換qcow2磁盤鏡像文件
1
|
$qemu-img convert -O qcow2 windows.qcow2 windows_new.qcow2
|
轉換完成后可以看到windows_new.qcow2占用的KVM主機存儲空間與客戶機使用的磁盤空間基本是一致的。然后用新的磁盤鏡像文件windows_new.qcow2啟動客戶機即可。