使用VMware虚拟机安装 Ubuntu系统后,最近觉得之前预分配的空间有点大,于是希望减少一点。由于当时选择分配磁盘时希望能将虚拟机性能提高一点选择了立即分配空间,导致现在无法缩减磁盘。由于不想重装Ubuntu,希望能再到一个合理可行的解决办法。在网上搜了许久,感觉看到的解决办法都讲得不那么能让人一目了然。所以想整理一下,简化解决办法。

        现在的使用办法是使用修改磁盘类型的方法,即将预分配空间的磁盘转换为可自增长的磁盘。具体如下:

(1)将表示VMare虚拟机的磁盘文件复制到VMare主文件夹(VMare的安装目录)。例如,如果虚拟机的名称为“Ubuntu16.04 LTS”,则VMware虚拟机磁盘文件可能称为“Ubuntu 16.04 LTS.vmdk”。

(2)打开宿主机中的命令行或终端(Linux中的命令行),以运行虚拟磁盘管理软件。在Windows宿主机中,更改目录为你安装Workstation软件所在的目录。默认的安装目录为C:\Program Files\VMware\VMware Workstation。记住该地址备用。我的是D:\VMware Workstation12。

(3)打开CMD窗口(我用的是Windows系统)进入上面需要记住的地址(D:\VMware Workstation12)。然后使用VMware磁盘转换命令,命令的格式为:vmware-vdiskmanager [选项];

在此处应该采用的是:

vmware-vdiskmanager -r sourceDisk.vmdk -t 0 targetDisk.vmdk

上述命令,将转换一个预分配虚拟磁盘sourceDisk.vmdk为可增长虚拟磁盘targetDisk.vmdk。

如果没有将表示VMare虚拟机的磁盘文件复制到VMare主文件夹,也可以直接按照磁盘文件的绝对地址应用上述命令。

我用的是:

vmware-vdiskmanager -r "D:\Ubuntu 64\Ubuntu 16.04 LTS.vmdk" -t 0 "D:\Ubuntu 64\Ubuntu 16.04.vmdk"

我用的绝对地址,且表示虚拟机的磁盘文件位置为D:\Ubuntu 64。

(4)等待一段时间,当CMD提示转换100%完成时可关闭CMD窗口。

(5)打开VMware Workstation,将上述磁盘生成的虚拟机磁盘文件添加到虚拟机,并将不想要的磁盘删除。

(6)将本地中多余的虚拟机磁盘文件,注意不要删除刚生成的虚拟机磁盘文件。

(7)打开虚拟机,是不是发现功能和之前一样且占用的内存少了许多(前提是本身虚拟机磁盘文件使用量没有达到预设定的值)。

此时整个世界又变轻松了。

其实如果当初新建虚拟机时不是选择立即分配内存也就不会有这样的事情,立即分配内存也提供不了多大的性能提升,目前是没感觉到有什么提升。不过这也是一种学习过程吧。

上述方法为本人亲测可用,未能保证上述方法的普适性。如果不适用可以多试试其他方法,实在不行就重装吧。

其他可参考的资料地址:

http://www.codebye.com/how-to-change-a-vmware-disk-to-preallocated.html

https://zhidao.baidu.com/question/1574855471667804660.html

其中第一个是将如何将可自增长的磁盘磁盘转换为预分配空间的磁盘;第二个资料说明了磁盘类型转换命令的具体含义,以及其他选项的含义。

注意:应该先关闭虚拟机再执行上述操作。

12-05 07:09