今天看了看kali虚拟机的所占空间,44G,有些惶恐,赶紧使用常规办法碎片整理压缩了一下,发现只减少了2G左右的占据空间
下面是再压缩方法
VMware 虚拟机的硬盘随着使用会越来越大,即使在虚拟系统中删除了文件,也不会减少虚拟硬盘的大小。为了释放虚拟硬盘的空间,需要使用 VMware 提供的工具对虚拟硬盘进行整理和压缩。本文记录 Linux 系统的虚拟机压缩硬盘的方法。
准备
为了压缩虚拟硬盘,需要在虚拟机中安装 VMware Tools 。
命令介绍
压缩硬盘包含两个过程:
- 第一步是清理,运行在虚拟机系统中,VMware Tools 收集所有没有被使用的硬盘块,为压缩做准备;
- 第二部是压缩,运行在主机系统中,VMware Workstation 根据清理的硬盘空间减少虚拟硬盘的大小。
在 Linux 系统中,压缩硬盘使用的是 vmware-toolbox-cmd 工具的 disk 命令:
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvdm13YXJlLXRvb2xib3gtY21kLWhlbHAtZGlzay5wbmc%3D.png?w=700&webp=1)
示例
查看虚拟硬盘占主机硬盘空间大小
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvc2l6ZV9iZWZvcmVfc2hyaW5rZWRfaW5faG9zdC5wbmc%3D.png?w=700&webp=1)
查看虚拟机系统中的硬盘空间使用情况
在虚拟机系统中删除不需要的文件,以增加收回的空间大小。
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvc2l6ZV9iZWZvcmVfZGVsZXRlX2luX2d1ZXN0LnBuZw%3D%3D.png?w=700&webp=1)
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvc2l6ZV9hZnRlcl9kZWxldGVfaW5fZ3Vlc3QucG5n.png?w=700&webp=1)
查看虚拟硬盘列表
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvdm13YXJlLXRvb2xib3gtY21kLWRpc2stbGlzdC5wbmc%3D.png?w=700&webp=1)
显示该虚拟机已禁用压缩磁盘功能,则需保证以下几点
1. 确保您的虚拟机没有暂停并且没有在安全模式下运行。如果在安全模式下运行,请关闭,然后在尝试压缩。
2. 注意压缩虚拟机磁盘只能在该虚拟机没有快照且禁用 Undo disks 选项的情况下进行。
3. 若要禁用 Undo disks 选项:
3.1. 打开虚拟机菜单或在Mac 菜单栏(在 Crystal 视图模式下)里按 Alt 并单击(选择单击)Parallels 图标并点击 配置。
3.2. 在虚拟机配置窗口里,进入 选项 选项卡并在侧边栏里选择 安全。
3.3. 设置 Undo disks 选项以 禁用。
清理虚拟硬盘
执行下面的命令,对 / 分区所在的虚拟硬盘进行清理:
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvdm13YXJlLXRvb2xib3gtY21kLWRpc2std2lwZS5wbmc%3D.png?w=700&webp=1)
压缩虚拟硬盘
执行下面的命令,对 /content/data 挂载点所在的虚拟硬盘进行压缩:
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvdm13YXJlLXRvb2xib3gtY21kLWRpc2stc2hyaW5rLnBuZw%3D%3D.png?w=700&webp=1)
注:现在对单个虚拟硬盘调用 disk shrink 会对所有的虚拟硬盘进行压缩,不知道是不是 Bug,所以我觉得比较好的办法是对每个虚拟硬盘分别调用 disk wipe,然后调用 disk shrinkonly 对所有的虚拟硬盘进行压缩。
查看压缩后虚拟硬盘占主机硬盘空间大小
![Linux 系统的 VMware 虚拟机压缩硬盘 Linux 系统的 VMware 虚拟机压缩硬盘](https://image.shishitao.com:8440/aHR0cHM6Ly9ibG9nLnJlb2hvdS5jb20vd3AtY29udGVudC91cGxvYWRzLzIwMTQvMTAvc2l6ZV9hZnRlcl9zaHJpbmtlZF9pbl9ob3N0LnBuZw%3D%3D.png?w=700&webp=1)
清理并压缩所有虚拟硬盘的简单脚本