kvm、pve、unraid 压缩磁盘

kvm、pve、unraid 压缩磁盘

pve虚拟的磁盘 在

/var/lib/vz/images/102#

1
2
3
4
5
6
cd /var/lib/vz/images/102
ls -lh
total 7.8G
-rw-r----- 1 root root 33G Oct  9 11:12 vm-102-disk-0.qcow2
#转化 就是压缩,但是并不会压缩太多,因为虚拟机内的操作系统删除的文件只是标识删除并没有写0
qemu-img convert -c -O qcow2 vm-102-disk-0.qcow2  vm-102-disk-0-compact.qcow2

虚拟机机内部压缩虚拟磁盘

下面操作在虚拟机进行

linux虚拟主机

禁用swap并清零

以archlinux为例

1
swapon -s                            partition       1010172         0               100

临时禁用 swap 文件并清零:

1
2
3
4
swapoff /some/swap/file
dd if=/dev/zero of=/some/swap/file bs=1M count=1024
sync
mkswap /some/swap/file

我这个明显是分区,所以

临时禁用 swap 分区并清零:

1
2
3
4
swapoff /dev/zram0  
dd if=/dev/zero of=/dev/zram0  
sync
mkswap /dev/zram0  

提示 No space left on device 就是ok了

清理缓存文件 arch 的主要是 pacman有一点

1
pacman -Scc

fdisk -l 查看一下分区 df -h 查看挂载情况 然后用空白文件逐个填充,我这里 其实就一个分区

sync 命令保证文件内容真正写到磁盘上而不是被缓存。

1
2
3
4
dd if=/dev/zero of=/bigfile
sync
rm /bigfile
sync

另外一个centos7的主机

1
2
3
4
5
6
7
8
9
swapon -s # /www/swap /dev/dm-1 
swapoff /www/swap
dd if=/dev/zero of=/www/swap bs=1M count=1024
swapoff /dev/dm-1 
dd if=/dev/zero of=/dev/dm-1 
sync
dd if=/dev/zero of=/bigfile
rm /bigfile
sync

关机

windows虚拟主机

1、dism++ 删除多余的appx文件,清理 2、关闭虚拟内存 重启 3、磁盘整理,磁盘管理压缩分区 4、关机

最后执行前面的 转化命令 就ok了

1
2
3
4
5
6
qemu-img convert -c -O qcow2 vm-102-disk-0.qcow2  vm-102-disk-0-compact.qcow2

cp  vm-102-disk-0-compact.qcow2 /mnt/hdd/kvm-bak/archlinux-vm-102-disk-0.qcow2 

mv vm-102-disk-0.qcow2  vm-102-disk-0.qcow2-bak
mv vm-102-disk-0-compact.qcow2 vm-102-disk-0.qcow2

一个安装了 xrdp 搜狗输入法 微软全部字体 火狐 edge 和 kde完整桌面 以及一些基本工具的磁盘 大小 只有3.2G

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计