[原]将Vmware Hardware Version降级
2021年8月26日 17:26
•
linux专区 •
阅读 48
原来有台服务器Host系统用的是红旗Asianux 3.0 for x86_64,运行Vmware Server 2.0 release提供虚拟环境,用于软件的测试。使用时间长了,总觉得使用上很不习惯,Vmware Server 2.0只提供基于浏览器的Web管理操作,调整配置很不方便,远程控制也麻烦。(我没找到2.0支持像GSX Server,用Console连接902端口的方式,其官方网站上说是不提供的)。 因机器不多,Host系统又不能改动。没有办法,我只能降回到Vmware Sever 1.0.x上使用。 升级容易,降级就麻烦多了。原来2.0上的虚拟机环境,创建时默认就是用Vmware Hardware Version 7的版本(新建虚拟机时可以选择),而1.x只支持到Hardware Version 5。我不可能放弃原来大量的虚拟机,重建的工作量太大了。为此,必须想办法把HW Version降级。 可惜,官方似乎也没有提供类似的工具。不过,经过测试,成功了,而且发现方法还是挺多的。
一、用nc拷贝数据 这是我第一个想到的方法。因为我以前使用这方法来从Vmware迁移系统到OpenVZ上面的。 操作很简单: 1、保持原来的Vmware 2.0,然后在启动创建一个新的虚拟机环境,创建时,选择“兼容类型”为Vmware Hardware Version 4,磁盘大小与需要迁移的虚拟机磁盘一样; 2、分别用系统安装光盘引导两台虚拟机,并用linux rescue进入拯救模式,并激活网络,用host-only等模式均可; 3、进入拯救模式后,在新的虚拟机上运行:
# nc -l -p 1234 | dd of=/dev/sda
4、旧的虚拟机上则运行:
# dd if=/dev/sda | nc 172.16.84.130 1234
其中,172.16.84.130是新虚拟机的IP地址。这样,就可以把旧虚拟机磁盘上的数据完全拷贝到新的虚拟机磁盘中。最后,用Vmware Server 1.0.8打开该虚拟机配置文件,改动一些参数,如:操作系统类型、网卡模拟的网络连接模式等,即可正常启动该虚拟机,数据也得到完整的保留。
二、修改HW Version方式 上述的方法简单,但相当耗费时间。实际上,也不需要这么麻烦。 我们都知道,vmware创建的虚拟硬盘实际上就是由一堆文件构成的,以.vmdk结尾。例如:
引用
# ll *.vmdk -rwxrwxrwx 1 root root 2147221504 Feb 23 17:15 hatest1-f001.vmdk -rwxrwxrwx 1 root root 2147221504 Feb 23 17:15 hatest1-f002.vmdk -rwxrwxrwx 1 root root 2147221504 Feb 23 17:15 hatest1-f003.vmdk -rwxrwxrwx 1 root root 2147221504 Feb 23 17:15 hatest1-f004.vmdk -rwxrwxrwx 1 root root 1048576 Dec 20 2007 hatest1-f005.vmdk -rwxrwxrwx 1 root root 523 Feb 23 17:12 hatest1.vmdk
查看这些文件的内容,不难发现其中就定义了HW Version的版本。这样,就提供了一种快速实现2.0到1.x虚拟机迁移的方法。
如果我们直接把这些从Vmware Server 2.0上磁盘文件(HW Version 7)加入到Vmware Server 1.0.8的虚拟机上,启动时,会报错误的: # sed -i 's/ddb.virtualHWVersion = "7"/ddb.virtualHWVersion = "4"/' hatest1.vmdk
最后,在Vmware Server Console环境中,编辑该虚拟机,去掉原来的临时硬盘文件,添加新的(已经存在的)磁盘,选择上述的文件;修改其余不兼容的配置信息,启动新虚拟机即可。
2、对于由单个文件组成的磁盘 由于,建立虚拟机的硬件时,有多种模式:可以在创建时预先分配(或按需分配)空间、把大文件分割为多个小文件存放,或不分割而用一个大的文件存放。所以,这就存在一个问题。如果我们使用的是单个大文件存放的方式,例如:
引用
# ll *.vmdk -rw——- 1 root root 2452619264 Feb 23 13:22 emos1.4.vmdk
这个文件就是使用单个文件,并用按需分配空间的方式创建的。虽然可以用vi或sed按照上面的方式来修改HW Version,但vi打开会非常慢,sed修改也需要一段不短的时间。没有简单方法吗?当然有啦!HW Version仅放在该文件的前面一部分,我们只要修改这部分就可以了。 首先,用dd拿到开头的一部分文件:
引用
# dd if=./emos1.4.vmdk of=./tmp.vmdk bs=1024k count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 MB) copied, 0.04213 seconds, 24.9 MB/s
然后,修改这个临时文件:
# sed -i 's/\(ddb.virtualHWVersion = "\)7/\14/' tmp.vmdk
接着,用这个临时文件和原来的文件合并为一个新的文件:
引用
# dd if=emos1.4.vmdk of=./tmp.vmdk bs=1024k skip=1 seek=1 2338+0 records in 2338+0 records out 2451570688 bytes (2.5 GB) copied, 60.314 seconds, 40.6 MB/s # ll *.vmdk -rw——- 1 root root 2452619264 Feb 23 13:22 emos1.4.vmdk -rw-r–r– 1 root root 2452619264 Feb 23 18:15 tmp.vmdk
最后,在Vmware Server Console环境中,加入这个临时文件tmp.vmdk,修改虚拟机中不兼容的参数,启动虚拟机,可以正常启动了吧。 确认没问题后,删掉旧的磁盘文件即可:
# rm emos1.4.vmdk # mv tmp.vmdk emos1.4.vmdk
把临时文件改名后,记得修改虚拟机配置文件哦。
◎ 无论使用上述方法二的那种方式,肯定都会比方法一快很多,操作也十分简单,注意备份好原有数据即可。O(∩_∩)O哈哈~
vSphere 5.0 重定位虚拟机时报“在主机的当前连接状况下不允许执行该操作”的问题 配置Vmware vSphere 5.0 Auto Deploy服务:配置Auto Deploy 服务 配置Vmware vSphere 5.0 Auto Deploy服务:准备自定义脱机库 给VMware vSphere Hypervisor(ESXi) 5.0 添加第三方驱动 创建VMware vSphere 5 使用的共享磁盘
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/linux/110949.html