【转】压缩Virtualbox的vdi文件
原文网址: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文件的更多相关文章
- VirtualBox 导入.vdi文件时报“uuid is exists”错误
解决办法: 1.要安装的.vdi文件所在目录:D:\developTools\vm\RedHatLinux1.vdi 2.找到VirtualBox的安装目录,这里是D:\Program Files\O ...
- VirtualBox 复制vdi文件和修改vdi的uuid
1.复制vdi文件:VBoxManage clonehd 因为VirtualBox不允许注册重复的uuid,而每个vdi文件都有一个唯一的uuid.所以要想拷贝一份vdi文件再次在VBOX中注册,简单 ...
- VirtualBox的vdi映像导入遇到的uuid冲突问题 (转)
virtualbox导入vdi文件时出现下面的问题: 打开hard disk D:\software\GT5.0.0.vdi 失败 Cannot register the hard disk 'D ...
- 【转】VIRTUALBOX导入已有.VDI文件步骤
原文网址:http://blog.csdn.net/wanghai__/article/details/6703923 1.安装SUN VIRTUALBOX 2.新建,进入到“新建虚拟电话”对话框,下 ...
- 使用VirtualBox把IMG文件转换为VDI文件
使用VirtualBox把IMG文件转换为VDI文件 首先确保已安装VirtualBox. 需要使用的命令: 语法:$ VBoxManage convertdd input.img output.vd ...
- VirtualBox下扩容vdi文件
VirtualBox下扩容vdi文件 版本:VirtualBox 5.0.14 之前VirtualBox创建的虚拟机的vdi文件过小,无法满足新的实验需求,扩容vdi文件的方法如下: 比如我这里将RH ...
- VirtualBox虚拟机怎么导入已经存在的vdi文件
VirtualBox虚拟机怎么导入已经存在的vdi文件 第一章 1.原因 早上一不小心将virtualBox 卸载了,(不知道怎么了, 里面得虚拟机全部都没有了,但是vdi文件还在) 2.解决办法 直 ...
- Ubuntu 16.04下减小/释放/清理VirtualBox虚拟硬盘文件的大小
一般在VirtualBox中安装Windows,然后用无缝模式进行某些特定软件的使用. 而VirtualBox的虚拟硬盘会越用越大,并且VirtualBox没有自带清理工具,相比VMware来说,VM ...
- [异常解决] virtualbox从.VDI备份文件新建/恢复虚拟机(包括恢复各个备份节点)
一.前言: ubuntu上的virtualbox中的虚拟机如果关机不当会导致整个虚拟机坏掉,而且采用各种debug方式都难以让它重新启动.这时你只能用之前备份的各个VDI文件来恢复系统了.还有另一种场 ...
随机推荐
- ANDROID 通过监听来电去电,并弹出悬浮窗
要监听android打电话和接电话,有一种的是通过新建一个Receiver继承自BroadcastReceiver. 还有一种也可通过PhoneStateListener来实现.今天就说说后面一种,废 ...
- memcached 安装
安装 memcached 需要 三部1,下载 memcached 放到php目录将php_memcached.dll 放到php的ext 目录 2,打开管理员命令,将memcached 拖拉到命令中, ...
- C# 文件粉碎
>文件粉碎的流程 填充文件 更改最后使用/创建时间 更改名称 将大小改为 0 kb 删除 using System; using System.Collections.Generic; usin ...
- [时间操作] C#TimeHelper时间格式化帮助类 (转载)
点击下载 TimeHelper.rar 主要功能如下 .将时间格式化成 年月日 的形式,如果时间为null,返回当前系统时间 .将时间格式化成 时分秒 的形式,如果时间为null,返回当前系统时间 . ...
- Windows下的进程【一】
什么是进程?进程就是一个正在运行的程序的实例,由两部分组成: 内核对象.操作系统用内核对象对进程进行管理,内核对象是操作系统保存进程统计信息的地方. 地址空间.其中包含所有可执行文件或DLL模块的代码 ...
- Java 中文件下载的几种应用
public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的 ...
- C#世界中的委托
委托是C#最重要的特性之一,C#后面的所有特性基本都是建立在委托的基础上的. 1.C#委托是什么? 可以把C#的委托理解为函数的一个包装,它使得C#中的函数可以作为参数来被传递.如果你学过C++,可以 ...
- C# 推送信息到APNs
iPhone消息推送机制实现与探讨 class Program { public static DateTime? Expiration { get; set; } ...
- phpExcel使用与中文处理教程
PHPExcel 是相当强大的 MS Office Excel 文档生成类库,当需要输出比较复杂格式数据的时候,PHPExcel 是个不错的选择.不过其使用方法相对来说也就有些繁琐. phpExcel ...
- CSS3 中FLEX快速实现BorderLayout布局
学习完flex的布局模式之后,我们趁热打铁,来实现一个BoxLayout布局.什么是BoxLayout布局?那我们先上一个图看看 BoxLayout布局写过后端UI代码的编程者应该不陌生了,写前端的代 ...