解決kvm虛擬機qcow2格式磁盤文件比實際空間占用大的問題


在基於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 (C1999-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啟動客戶機即可。

文章參考:http://www.viper.im/archives/qcow2-disk-reduce.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM