虚拟机环境维护之VDI转VMDK, VMDK瘦身
虚拟机环境维护之VDI转VMDK, VMDK瘦身
虚拟机环境维护之VDI转VMDK, VMDK瘦身
被Virutal Box虐了三遍后,我开心的决定放弃。
VDI虚拟硬盘真心好扯,我内心受伤害了
好在VDI可以转VMDK,趁着Virtual box版虚拟机还可以打开,在Virtual BOX软件里打开管理器,必须使用clone的方法,将VDI转换成Clone虚拟硬盘,然后建立Vmware虚拟机,使用该VMDK,从此Virtual Box是路人,我直接就卸载了。
我又发现VMDK文件太大,于是搜谷歌,用Vmware的工具来给VMDK瘦身
vmware-vdiskmanager -k *.vmdk,但是这样瘦下来发现,其实没有瘦。
这里其实有这么个原因,VMDK文件之所以大,是因为guest系统总是占用空间而不释放,它自己不释放空间,想用别的工具逼它释放,没法达到目的。
又搜谷歌,有人这么做,在guest的终端下,以根用户命令:
cat /dev/zero > zero.fill , 一直执行到这条命令执行不下去,guest系统提示说没有足够空间为止,这时ls -l看这个zero.fill文件,大的数不过来,开心的删掉它,然后关掉guest系统,再用vmware-vdiskmanager这条命令就可以很快瘦下去了。目前没有发现出错的情况,但是在执行这个瘦身指令前做一个备份是良好的习惯。
如果你的guest系统不是以single disk方式建立的,而是以分散文件建立的,虚拟机目录下会有很多VMDK文件,你应该找第一个,比如虚拟机叫centos,你就
vmware-vdiskmanager -k centos.vmdk
另外,要瘦身,必须得删除之前所有的snapshot,同样的,如果之前的snapshot比较重要,就备份吧
/*******************分割线**************************/
vmware-vdiskmanger.exe 是利用虚拟机的 Shrink 功能,就是把
原理:
虚拟机删除文件只是把文件索引给剔除掉了。。而删除的这个文件可能存在.vmdk的任何位置,对于win来说,
这个文件的中间有一块位置是0,所以这个空间没办法释放掉,唯一的办法就是用一些手段把这块0的空间推到.vmdk的末尾,
这样win就知道这个文件变小了
对于这个问题,就是一个虚拟机有多个磁盘文件,意思就是在创建虚拟机的时候选择了
分成多个文件,这样就需要找到第一个 vmdk 就可以了,(后面的vmdk好像会自动寻找、连接)
有一个问题就是,这个shrink 有要求:假如当前 已用空间 是x,可用空间是 y,要求 y>x;
完成这一步操作之后,需要在Ubuntu中堆分区进行扩容。因为:
:df -h 可以看到 sda 只有9.7G可用,
但是fdisk -l 可以看到分区sda有130G(虚拟机一共分配了130G,这个在虚拟机的设置-->磁盘 也可以看到)
就是有50G没有被分配,使用GParted 工具(需要先在apt-get 安装)对分区sda进行扩容操作;
输入新大小,最后点击调整大小,最后保存
再输入df -h 查看sda的分区
参考连接:https://blog.csdn.net/wanglinyp/article/details/119923800