迁移 VirtualBox 到 VMware
0x0 导出
首先将 VirtualBox 中的虚拟机关机, 右键, 导出虚拟机, 选择 OVA 2.0
. (因为 VirtualBox 已经被我卸载了, 没图)
0x1 导入
拿到 OVA 文件后, 打开 VMware, 选择打开文件, 选中导出的文件, 如果没意外的话通常会报错.
Line XX: Unsupported element StorageItem (这个可能有多种 element)
问题不大, 将 OVA 文件解压, 打开 .ovf
文件, 找到上述对应行报错, 将节点类型改变一下, 如 StorageItem
-> Item
, 子节点类型前的 xasd
全改为 rasd
. 如下代码已修正:
<Item>
<rasd:AddressOnParent>0</rasd:AddressOnParent>
<rasd:Caption>disk1</rasd:Caption>
<rasd:Description>Disk Image</rasd:Description>
<rasd:HostResource>/disk/vmdisk1</rasd:HostResource>
<rasd:InstanceID>7</rasd:InstanceID>
<rasd:Parent>5</rasd:Parent>
<rasd:ResourceType>17</rasd:ResourceType>
</Item>
<Item>
<rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
<rasd:Caption>Ethernet adapter on 'Bridged'</rasd:Caption>
<rasd:Connection>Bridged</rasd:Connection>
<rasd:InstanceID>8</rasd:InstanceID>
<rasd:ResourceSubType>E1000</rasd:ResourceSubType>
<rasd:ResourceType>10</rasd:ResourceType>
</Item>
调整完成后, 计算一下该文件的 SHA256 值, 并更新在同目录中的 .mf
文件
SHA256 (Dev-disk001.vmdk) = 96bba665329exxxxxxxxx
SHA256 (Dev.ovf) = 0d1e811ff36c8067bxxxxxxxx <- 这里
全部操作完毕后, VMware 即可导入了.
0x2 修复网络
因为虚拟出来的网卡设备不一样, 系统里的网卡信息肯定是不一致的, 我们需要改一哈.
先将 VMware 网卡改成你爱的, (我用 VMnet8), 然后登录上虚拟机.
# 输入: ip a, 找到网卡, 我这是 ens33
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:10:35:d6 brd ff:ff:ff:ff:ff:ff
altname enp2s1
# 打开 /etc/network/interfaces, 修改一下, 保存退出
allow-hotplug ens33
iface ens33 inet dhcp
# 运行 /etc/init.d/networking restart 重开下网络即可
0x3 修正无法打开设置
折腾完后发现, 在 VMware 中无法打开虚拟机设置面板. Google 了一下, 解决辣.
# 找到虚拟机目录下的 `.vmx` 文件, 打开编辑, 加入下行即可
cpuid.coresPerSocket = "1"
0x4 使用
全部处理完成后, 就可以把 VirtualBox 卸载辣! 但用下来只感觉快了一点, 但不多. 大概是我贫穷的 HDD 问题.
-- Fin --