VirtualBox 6 压缩磁盘以回收未使用的空间

-
-
2024-08-29

前言

相比起 VMware 可以在软件上图形化窗口直接操作 “压缩磁盘以回收未使用的空间”来释放占用空间,VirtualBox 6 因为不支持软件窗口操作缩小虚拟机磁盘空间或者压缩虚拟机磁盘空间(不因虚拟机中删除文件释放空间),但提供 VBoxManage 命令进行清理,相对来说还是麻烦了一些。

操作教程

Windows 环境

1、在Windows虚拟机中,先从微软官网下载SDelete ,下载完成后解压到对应磁盘目录下(如 直接放在c盘根目录下),打开 cmd 进入到C盘中,然后执行如下命令:

# sdelete64.exe 是刚刚下载解压的文件名,需要根据实际调整,有多个磁盘就每个磁盘执行一遍
C:\sdelete64.exe -z c:\

2、完成第一步操作后,先关闭虚拟机,然后进入宿主机 VBoxManage.exe 目录(通常为 VirtualBox 安装目录),然后执行 BoxManage命令压缩 VDI 虚拟机磁盘文件即可,命令参考如下:

# 也可以直接进入到文件所在文件夹然后在资源管理器输入cmd直接打开,省得cd
cd D:\Program Files\Oracle\VirtualBox
# 执行压缩命令
VBoxManage modifyhd F:\VMs\VBOX_Win10_LTSB_1607_3.0.0_x64.vdi –compact

Linux 环境

在Linux虚拟机依次输入如下命令:

sudo dd if=/dev/zero of=/empty

sudo rm -f /empty

完成后关闭虚拟机,然后在宿主机输入磁盘压缩命令(与Windows的磁盘压缩命令相同):

VBoxManage.exe modifyhd "E:\VMs\VBOX_Apline_virt_3.19.1_0.0.0_x64" --compact

以上便完成了磁盘未使用空间回收。

参考资料


目录