原文网址:http://i.rexdf.org/blog/2014/10/06/ya-suo-virtualboxde-vdiwen-jian/

问题实际上比较简单,我在Arch Linux杂记中给出过一种增加vdi磁盘空间的方法。实际上就是用gparted-live-iso复制一遍文件系统。这种方法也是具有压缩的效果的。Linux的不太清楚,Windows的系统可以直接用DiskGenius挂载磁盘,然后直接在DiskGenius里面按文件对拷。效果明显好于ghost-iso光盘拷贝的。Windows的vmdk的虚拟机我做备份的时候,都是直接用DiskGenius拷贝然后rar压缩一下,效果非常之好,原版的xpsp3全新安装打所有补丁,升级全部系统组件之后,rar包只有800M左右,这样的系统随时新建一个系统非常方便。

因为Arch我基本都不启动图形界面的,启动都是SHIFT的headless的方式,所以装在了VirtualBox里面。用过一段时间之后磁盘逐渐大了起来,前些天编译gpg4win之后还磁盘不足过。到这时我才发现pacman -Sc能极大地清理系统这个诀窍。

本文主要的是一个笔记,记录问题和解决办法,为以后备查。

我现在采用办法是这里的。

Linux 虚拟机:

sudo dd if=/dev/zero of=/bigemptyfile bs=4096k
sudo rm -rf /bigemptyfile

Windows虚拟机, 下载 SDelete (Sysinternals一个组件):

sdelete –z

然后执行

VBoxManage.exe modifyhd arch.vdi --compact

我用的是10.3.16,这里有个比较有意思的现象,上面的dd命令执行完了之后用df -h查看,可以发现磁盘剩余空间是0%,但是我在物理机上面查看,没有观测到任何磁盘空间变化,完全没有。执行完rm命令后,df -h看到的就恢复之前的正常值了,没有多也没有少。

另外还有就是执行到了60%多的时候,我都没观测到arch.vdi这个文件大小一比特的变化(我不停在按F5刷新查看)。但是执行完了之后我再去看的时候就从原来的28.8G减小到了21.5G了,释放了7.3G空间,确实不错。

另外官网还推荐一个zerofree,在arch的aur源里面有,可以用yourt zerofree进行安装。我之所以没有用这个办法是因为,虽然官网上面1.0.1说的是支持ext2,ext3,ext4,但是aur源里面版本1.0.2说明的是ext2 filesystem,看到这个我就放弃尝试了。

官网给出的方案

Windows虚拟机

sdelete -c C
sdelete -c D

Linux 虚拟机

mount -n -o remount,ro -t ext2 /dev/sda1 /
mount -n -o remount,ro -t ext2 /dev/sdb1 /var
zerofree /dev/sda1
zerofree /dev/sdb1

【转】压缩Virtualbox的vdi文件的更多相关文章

  1. VirtualBox 导入.vdi文件时报“uuid is exists”错误

    解决办法: 1.要安装的.vdi文件所在目录:D:\developTools\vm\RedHatLinux1.vdi 2.找到VirtualBox的安装目录,这里是D:\Program Files\O ...

  2. VirtualBox 复制vdi文件和修改vdi的uuid

    1.复制vdi文件:VBoxManage clonehd 因为VirtualBox不允许注册重复的uuid,而每个vdi文件都有一个唯一的uuid.所以要想拷贝一份vdi文件再次在VBOX中注册,简单 ...

  3. VirtualBox的vdi映像导入遇到的uuid冲突问题 (转)

      virtualbox导入vdi文件时出现下面的问题: 打开hard disk D:\software\GT5.0.0.vdi 失败 Cannot register the hard disk 'D ...

  4. 【转】VIRTUALBOX导入已有.VDI文件步骤

    原文网址:http://blog.csdn.net/wanghai__/article/details/6703923 1.安装SUN VIRTUALBOX 2.新建,进入到“新建虚拟电话”对话框,下 ...

  5. 使用VirtualBox把IMG文件转换为VDI文件

    使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...

  6. VirtualBox下扩容vdi文件

    VirtualBox下扩容vdi文件 版本:VirtualBox 5.0.14 之前VirtualBox创建的虚拟机的vdi文件过小,无法满足新的实验需求,扩容vdi文件的方法如下: 比如我这里将RH ...

  7. VirtualBox虚拟机怎么导入已经存在的vdi文件

    VirtualBox虚拟机怎么导入已经存在的vdi文件 第一章 1.原因 早上一不小心将virtualBox 卸载了,(不知道怎么了, 里面得虚拟机全部都没有了,但是vdi文件还在) 2.解决办法 直 ...

  8. Ubuntu 16.04下减小/释放/清理VirtualBox虚拟硬盘文件的大小

    一般在VirtualBox中安装Windows,然后用无缝模式进行某些特定软件的使用. 而VirtualBox的虚拟硬盘会越用越大,并且VirtualBox没有自带清理工具,相比VMware来说,VM ...

  9. [异常解决] virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)

    一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...

随机推荐

  1. javascript技巧字典【转藏】

    2015-12-31 js判断undefined类型 if (reValue== undefined){    alert("undefined");    }  发现判断不出来, ...

  2. [DEncrypt] DESEncrypt--加密/解密帮助类 (转载)

    点击下载 DESEncrypt.zip 这个类是关于加密,解密的操作,文件的一些高级操作1.DESEncrypt加密2.DESEncrypt解密看下面代码吧 /// <summary> / ...

  3. Android - 向服务器发送数据(GET).

    在此,使用HTTP协议,通过GET请求,向服务器发送请求,这种方式适合于数据量小,数据安全性要求不高的情况下. 一,服务器端,使用Servlet. 在服务器端,定义一个HttpServlet的子类,以 ...

  4. Java的split方法说明

    相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况: 大家想想下面的代码执行结果是什么 public static void main(String[] args) { ...

  5. 一天学完UFLDL

    学习UFLDL笔记 第一节 神经网络 神经元长这样 大写W看着有点不习惯.. 激活函数, 就是上面式子中的f. 可以选 sigmoid函数(或者叫 logistic回归,对数几率函数),反正就是这样一 ...

  6. 【POJ1811】【miller_rabin + pollard rho + 快速乘】Prime Test

    Description Given a big integer number, you are required to find out whether it's a prime number. In ...

  7. hibernate一些方法

    session.flush() 同步缓存与数据库数据 session.evict(obj) 关闭指定对象缓存 session.clear() 关闭所有缓存 iterator(会把数据放入缓存)  下次 ...

  8. 浅谈PHP神盾的解密过程

    我们来做第一步解密处理吧. PS: 这只是我的解密思路,与大家分享一下,也许你有更好的方法还望分享 <?php $str = file_get_contents("1.php" ...

  9. JavaScript 输入自动完成插件

    作为web开发的一员,应该都不陌生,信息处理时,很多时候需要根据用户的输入实时反馈查询结果供其选择,这给了用户很好的人机交互体验,在各大门户网站上已经被使用的很成熟了,最近项目中用到此功能,网上有很多 ...

  10. Jquery Mobile下设置radio控件选中

    问题: .html文件头部引入了: <script src="js/jquery.js"></script> <script src="js ...