[记录]虚拟硬盘的压缩|磁盘写零

用虚拟机软件虚拟出来的硬盘文件会随着使用而变大,因为磁盘碎片的产生,这个文件里也有很多的没用的空闲空间,为了节省空间,可以对虚拟硬盘文件进行压缩。

以下以Virtual Box的vdi格式为例

指导思想

  1. 虚拟机: 清理系统,卸载、删除系统垃圾文件
  2. 虚拟机: 将磁盘数据靠“前”移动,使用 Free Utility 将剩余磁盘空间写“零”
  3. 物理主机: 清除“零”字节空间,使用 VBoxManage modifyhd 工具压缩 VDI 磁盘镜像文件

Windows 虚拟机

  1. 虚拟机: 删除系统垃圾文件,运行磁盘整理程序…
  2. 虚拟机: 用 SDelete 工具写”零”,下载地址 http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx,下载后存到 Windows\System32\目录中,在命令行下执行 “sdelete -c” > sdelete -c c:
  3. 物理主机: 执行 “VBoxManage modifyhd 虚拟硬盘文件地址.vdi -compact” > 使用这个命令时可能出错,错误信息是:“Shrink hard disk operation is not implemented!”有高人写了一段小代码,实现了这个功能,PackVDI,下载地址:http://jerome.hode.free.fr/opensource/PackVDI.zip。执行 PackVDI 文件名即可。

Linux 虚拟机

  1. 虚拟机: 清理、卸载系统垃圾文件
  2. 虚拟机: 写“零”,

方法一:创建一个文件,填充零,再删除

dd if=/dev/zero of=junk[这是挂载分区的目录]
sync
rm junk

方法二:

  1. 用一张 LiveCD (ubuntu) 启动虚拟机,使用 System – Administration – GParted 分区软件,将虚拟硬盘空间收缩到最小,应用…
  2. 在刚才腾出来的空间上建立新分区,执行 “dd if=/dev/zero of=/dev/{?}”, 然后删除此分区
  3. 回到主分区,恢复它的所有空间

方法三: 使用 zerofree

  1. 物理主机: 执行 “VBoxManage modifyhd 虚拟硬盘文件地址.vdi -compact”

另外,如果是VmWare虚拟机,可以直接用VmwareTools中自带的的Shrink,使用前需要关闭快照 或者可以利用DiskGenius压缩虚拟硬盘,方法见http://www.diskgenius.cn/exp/compressvirtualdisk.asp,但是这玩意至少目前知道对Linux的lvm逻辑磁盘支持欠佳

补充:

# ======= VirtualBox的虚拟磁盘文件,vdi的压缩命令为 ======= 
VBoxManage modifyhd 虚拟硬盘文件地址.vdi -compact
# ======= Virtual PC 的虚拟磁盘文件,vhd的压缩命令为 ======= 
diskpart
select vdisk file=[虚拟磁盘文件地址].vhd
compact vdisk

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和配置Postfix作为仅发送SMTP服务器

Postfix是一种邮件传输代理(MTA),一种用于发送和接收电子邮件的应用程序。在本教程中,我们将安装和配置Postfix,使它仅可以用于本地应用程序发送电子...

90300
来自专栏三杯水

系统重启后nginx reload不生效原因分析

这是一种比较少见,困扰我很久的问题,虽然这个问题很简单,但是找到根本原因还是费了不少时间,现在把分析过程分享如下。

41120
来自专栏云计算教程系列

如何在CentOS 7上将BIND配置为专用网络DNS服务器

管理服务器配置和基础架构的一个重要部分包括通过设置适当的域名系统(DNS),维护一种通过名称查找网络接口和IP地址的简便方法。使用完全限定的域名(FQDN)而不...

42500
来自专栏码洞

HTTP协议冷知识大全

HTTP协议是纯文本协议,没有任何加密措施。通过HTTP协议传输的数据都可以在网络上被完全监听。如果用户登陆时将用户名和密码直接明文通过HTTP协议传输过去了,...

11020
来自专栏黑白安全

常规web渗透测试漏洞描述及修复建议

apache一些样例文件没有删除,可能存在cookie、session伪造,进行后台登录操作

47140
来自专栏IT笔记

Linux下如何简单快速搭建FTP服务器

遥想多年前,我们还在玩虚拟主机的时候,一个小小的FTP账号我们就可以玩半天,那会使用的是flashfxp。 后来,有了VPS(那时用的还是win系列服务器系统)...

65390
来自专栏瓜大三哥

Yaffs_checkptrw

1.static int apply_chunk_offset(struct yaffs_dev *dev, int chunk) {return chunk ...

19580
来自专栏云计算教程系列

如何在Ubuntu 14.04上使用Pydio托管文件共享服务器

随着云的采用增加,越来越多的数据被远程存储。从音乐到图片再到个人文档,很多人都将文件上传到他们不管理的服务器上。如果您希望将文件保存在您控制的服务器上,则可以使...

40700
来自专栏运维

系统重启后ngix reload不生效原因分析

这是一种比较少见,困扰我很久的问题,虽然这个问题很简单,但是找到根本原因还是费了不少时间,现在把分析过程分享如下。

9520
来自专栏美丽应用

树莓派折腾记:部署LNMP环境并实现多站点共存

16840

扫码关注云+社区

领取腾讯云代金券