我正在使用 Ubuntu 21.04 中的虚拟盒来创建虚拟机并进行测试。我有一台虚拟机,它使用了大约 70 GB 的数据。这些数据来自额外的磁盘。如下所示:
puneet@puneet-PowerEdge-T30:/mnt/VMs/vms/mx19-102$ pwd
/mnt/VMs/vms/mx19-102
puneet@puneet-PowerEdge-T30:/mnt/VMs/vms/mx19-102$ du -sh *
772K Logs
69G mx19-102_1.vdi
8.0K mx19-102.vbox
8.0K mx19-102.vbox-prev
9.9G mx19-102.vdi
808K Snapshots
puneet@puneet-PowerEdge-T30:/mnt/VMs/vms/mx19-102$
主机系统中的最大空间被 mx19-102_1.vdi 占用,但实际上并未使用。
puneet@mx:~
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 28G 0 part /
└─sda2 8:2 0 2G 0 part [SWAP]
sdb 8:16 0 168.8G 0 disk
└─sdb1 8:17 0 168.8G 0 part /media/data
sr0 11:0 1 1024M 0 rom
puneet@mx:~
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 964M 0 964M 0% /dev
tmpfs 200M 2.3M 198M 2% /run
/dev/sda1 28G 7.7G 19G 30% /
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 809M 76K 809M 1% /dev/shm
/dev/sdb1 169G 17M 167G 1% /media/data
cgroup 12K 0 12K 0% /sys/fs/cgroup
tmpfs 200M 4.0K 200M 1% /run/user/118
tmpfs 200M 0 200M 0% /run/user/1000
puneet@mx:~
$
磁盘信息:
Parent UUID: base
State: locked read
Type: normal (base)
Location: /mnt/VMs/vms/mx19-102/mx19-102_1.vdi
Storage format: VDI
Format variant: dynamic default
Capacity: 172785 MBytes
Size on disk: 70236 MBytes
有什么方法可以回收主机系统中的空间?
答案1
缩小 a.vdi
非常简单,但需要您有意“将设备填满容量”。基本过程如下:
- 卸载所有应用程序并删除不再需要的任何文件
- 在要缩小的存储设备上创建一个仅由零组成的巨型文件
- 让文件填满整个设备(这实际上不会消耗主机系统上的所有数据)
- 删除文件
- 关闭虚拟机
- 压缩
.vdi
文件
这听起来工作量很大,但是,经过一两次演练后,如果您愿意的话,您会发现有一种半简单的方法可以将其自动化为两个步骤。
那么让我们开始“长途跋涉”吧:
- 在虚拟机上,打开终端(或 SSH)
- 假设您已经删除了所有不需要的内容,请创建一个由零组成的大文件:
sudo dd if=/dev/zero of=/bigzero bs=4096k
- 让机器耗尽该存储设备的空间,这将导致
dd
报告错误 - 删除文件
sudo rm -f /bigzero
- 关闭虚拟机
现在,在主机上执行以下操作:
- 打开终端(如果尚未打开)
- 使用以下命令导航到目录
.vdi
:
笔记:你不需要需要位于同一目录中,但它确实使得在即将进行的操作后验证缩小的文件大小变得更加容易。cd /mnt/VMs/vms/mx19-102
- 缩小
.vdi
:
当该工具输出其完成状态时,您将看到进度,如下所示:VBoxManage modifymedium disk mx19-102_1.vdi --compact
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
- 验证结果:
du -sh * 772K Logs 30G mx19-102_1.vdi 8.0K mx19-102.vbox 8.0K mx19-102.vbox-prev 9.9G mx19-102.vdi 808K Snapshots
有相当多有用的操作modifymedium
如果您需要更改虚拟存储设备的属性,则可以启用此功能。