如何将vmware的vmdk文件的引导提取?系统是linux

如何将vmware的vmdk文件的引导提取?系统是linux,第1张

于是用vmware的diskmount将vmdk映射到windows下你都映射都windows下面了,在这个虚拟的windows装个winimage,直接使用磁盘x,然后提取引导记录试试。。。不知道行不行,呵呵

我们发现 VMware vShpere 私有云成本太高,比如我们实验室随便一台服务器就有 512GB 内存,按照 VMware

vSphere Standard(标准版)的授权我们需要 512/32=16

个授权,每个授权1293.5美元(又涨价了),1台服务器就需要约2万美元(16个授权),这个授权只是版权价格(LICENSE

PRICE),还不包括每年的 1 YEAR SUPPORT &

SUBSCRIPTION(419.9美元),这是在抢钱不~,今年初我们买了3个授权来评估和测试,但是按照这个授权方案只能用在2台服务器上(1台

24GB 内存,1台 64GB 内存),VMware 的产品实在不适合我们,我们打算把 VMware ESXi 上现有的一些虚拟机迁移到

OpenNebula/KVM 上。

最先迁移的是一台 Windows Server 2008 R2 虚拟机,这台虚拟机跑在 VMware ESXi 上专门用来运行

VMware vCenter Server(vCenter Server 只能安装在64位的 Windows 系统上),有些现成迁移工具比如

virt-v2v 等,不过个人还是喜欢自己动手,那些工具有时候不太好用。下面的步骤应该对其他的 Windows 版本也有效。

首先用 vShpere Client 登陆到 VMware ESXi 5.0 上打开防火墙设置,允许 ESXi 上的 ssh server

和 ssh client 可用,否则不能 ssh 登陆到 ESXi 也不能从 ESXi 上 scp 镜像到 KVM 服务器,设置具体在

Configuration >Software >Security Profile >Firewall >

Properties … >SSH Client 里:

然后 ssh 登陆 VMware ESXi 5.0 服务器(172.16.39.100)后,scp 所需要的镜像文件(后缀名为 .vmdk)到 KVM 服务器(172.16.39.101)上

$ ssh root@172.16.39.100

Password:

The time and date of this login have been sent to the system logs.

VMware offers supported, powerful system administration tools. Please

see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the

vSphere Security documentation for more information.

~ # scp /vmfs/volumes/localstore/vcenter/vcenter-flat.vmdk root@172.16.39.101:/root

把 VMware 的 vmdk 格式转化成 KVM 的格式,因为从 v0.12 开始 qemu-kvm 已经支持 VMware 的硬盘格式 v6 和 v7,所以这一步其实是可以省略的,换句话说 kvm 可以直接启动 vmdk 格式的虚拟机。

$ ssh root@172.16.39.101

# qemu-img convert vcenter-flat.vmdk vcenter.img

最后用 virsh create vcenter.xml 的时候记得 vcenter.xml 文件里面关于硬盘的部分是如下设置,还有记得打开 vnc 设置(别忘了 Windows 是图形界面的):

# vi vcenter.xml

...

<disk type='file' device='disk'/>

<driver name='qemu' type='raw'/>

<source file='/root/vcenter.img'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0' bus='0' unit='0'/>

</disk>

<controller type='ide' index='0'>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

</controller>

...

&ltgraphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>

&ltlisten type='address' address='0.0.0.0'/>

&lt/graphics>

...

# virsh create vcenter.xml

Troubleshooting

如果启动 Windows 后用 vnc 客户端连接 KVM 服务器,Windows 启动过程中可能出现蓝屏 Stop 0x0000007B 错误,这是因为硬盘控制器驱动变了:

Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢?

以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个VBoxManager.exe来转换格式。

命令如下(Windows环境,linux版的应该也有VBoxManager这个二进制文件):

VBoxManager存在于VirtualBox的安装目录下。

vmdk转换成vdi

VBoxManage.exe clonehd source.vmdk target.vdi --format VDI

vdi转换成vmdk

VBoxManage.exe clonehd source.vdi target.vmdk --format VMDK

vdi转换成vhd

VBoxManage.exe clonehd source.vdi target.vhd --format VHD

vmdk转vhd,vhd转vdi、vmdk的话稍微改一点参数就OK了。

需要注意的是运行完命令之后,原文件并不会被删除。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7412686.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存