虚拟机压缩虚拟磁盘的方法
admin
2024-01-30 15:33:08

虚拟机删除文件后,虚拟磁盘占用空间并不会缩小,甚至在外面手动压缩都无法缩小,这是因为虚拟机并不能感知到客户系统删除了文件

实际上虚拟机虚拟磁盘压缩需要两步,需要首先在内部填0,然后在外面压缩才能缩小占用空间

下面是vmware和virtualbox下的虚拟机压缩虚拟磁盘的方法

【vmware】

在linux虚拟机内执行下列命令:

sudo vmware-toolbox-cmd disk wipe /
sudo vmware-toolbox-cmd disk wipe /home
sudo vmware-toolbox-cmd disk wipe /boot
sudo vmware-toolbox-cmd disk shrinkonly
# sudo vmware-toolbox-cmd disk list                : 列出可用
# sudo vmware-toolbox-cmd disk wipe    : 擦除未使用空间
# sudo vmware-toolbox-cmd disk shrinkonly          : 压缩磁盘
# sudo vmware-toolbox-cmd disk shrink  : 擦除未使用空间并压缩磁盘

在windows虚拟机内执行下列命令(需要管理员命令提示符):

"C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd" disk shrink c:\

命令会首先对未使用空间填0, 然后会弹出vmware的压缩虚拟磁盘进度条,进度条走完以后就压缩成功了

 【virtualbox】

windows虚拟机首先需要在虚拟机内下载sysinternals的sdelete(假设放到了c:\):

SDelete - Sysinternals | Microsoft Learn

然后在虚拟机内执行下列命令(需要管理员命令提示符),对未使用的空间填0:

c:\sdelete c: -z

linux虚拟机首先需要在虚拟机内执行下列命令,对未使用空间填0:

sudo su -c 'dd if=/dev/zero of=/zero bs=512; rm -v /empty'
sudo su -c 'dd if=/dev/zero of=/home/zero bs=512; rm -v /home/empty'
sudo su -c 'dd if=/dev/zero of=/boot/zero bs=512; rm -v /boot/empty'
# 写全0文件不会导致虚拟磁盘体积膨胀
# empty文件一定要显示已删除后再重启,否则可能因为磁盘空间不足而无法登录

然后需要关闭虚拟机,在windows主机命令行下执行下面的命令压缩虚拟磁盘:

"C:\Program Files\Oracle\VirtualBox\vboxmanage" modifyhd "%USERPROFILE%\VirtualBox VMs\ubuntu\ubuntu.vdi" --compact

linux主机的命令:

vboxmanage modifyhd ~/VirtualBox\ VMs/ubuntu/ubuntu.vdi --compact

相关内容

热门资讯

新质新格局,景芝白酒再次点亮黄... 11月18日,备受瞩目的2025年第六届中国白酒黄淮核心产区高质量发展峰会在淄博举办。本届峰会以“新...
今日播出|丝路陕茶 千年留香 播出时间:农林卫视《农村大市场》11月19日22:05 丝路陕茶 千年留香 陕西是我国最早种茶、出产...
纠结有什么好吃的零食品牌推荐?... 在快节奏的现代生活中,零食早已超越了单纯的充饥角色,转而成为我们慰藉味蕾、补充能量、甚至分享快乐的重...
吃巧克力能缓解甲状腺相关疲劳? 一、甲状腺相关疲劳的核心成因 要判断巧克力能否缓解甲状腺相关疲劳,首先需要明确这种疲劳的根源。甲状腺...
暖乎乎的酒酿南瓜丸子羹,一口甜... 秋冬最治愈的家常甜汤,必须提名酒酿南瓜丸子羹!金黄的南瓜丸子软乎乎,裹着清甜的酒酿汤汁,一口下去暖到...