【转】压缩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文件来恢复系统了.还有另一种场 ...
随机推荐
- WPF 格式化输出- IValueConverter接口的使用
以前在用ASP.NET 做B/S系统时,可以方便地在GRIDVIEW DATAList等数据控件中,使用自定义的代码逻辑,比如 使用 <%# GetBalance(custID) %> 这 ...
- Unity3D获取当前键盘按键
获取当前键盘按键,代码如下: using UnityEngine; using System.Collections; public class GetCurrentKey : MonoBehavio ...
- css3新增加的选择器
css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...
- Android常用错误解决汇总
一.No active compatible AVD's or devices found. Relaunch this configuration after connecting a device ...
- angularJS广播
控制器之间共享数据(向父级/子级控制器传递event,data),类似于service在不同的控制器中通信 html: <div ng-controller="ParentCtrl&q ...
- 适合自己的vim配置文件
主要用来写c++的:clang-completer这个是单独安装的,其他的都采用的vundle安装完成. clang-completer:只在centos7.2上安装成功过,6.4上失败了.先要安装一 ...
- HDU1878欧拉回路
这道题WA了好多次.测试数据感觉有点问题-- 并查集啊,必须有. #include<stdio.h> #include<string.h> int ad[1003]; int ...
- JS-SDK微信支付开发攻略
一.吐槽篇 一个字——坑!两个字——很坑!三个字——非常坑!首先,微信支付接口作为微信开发接口的一部分,竟然有一本书那么厚的官方文档,共36页,更重要的是,这36页还不能把开发的流程说清楚,描述过于分 ...
- MVVM模式应用 之为ApplicationBarIconButton 添加Command操作属性
在学习MVVM的过程中,总是会遇到挫折,一碰到就是花费好长时间去解决..唉,不求量,只求质. 第一种(已经实践成功): (1)http://bindableapplicationb.codeplex. ...
- jquery前端性能优化(持续添加。。。)
1.选择器的使用 (1)$('#id') 使用id来定位dom元素是性能最高的方法.jQuery底层将直接调用本地方法document.getElementById().如果id直接可以找到所要对 ...