物理机转虚拟机是很有用的功能,试想你有一台快到使用寿命的古老PC,其上跑的应用仍然在用,可是因为年代久远,已经找不到当初的运维人员了,也就无法把老应用迁移到新PC上来(XP下的应用是否能运行于WIN10还尚未可知),此时就可以把物理机转换为虚拟机(P2V),这台PC上的操作系统(包括其下的所有应用软件)都进入虚拟机,跑在在新PC上继续发挥余热。

VMware Workstation和VMware vCenter Converter Standalone Client都可以转换,但前者需要安装后者才能转换,而且前者可以直接把转换后的虚拟机存放于本地目录,后者却需要存放于共享目录,比较麻烦。

另外,VMware Workstation只能将Windows主机转化为虚拟机,vCenter Converter Standalone还可以转换Linux主机。

既可以在A主机安装VMware-converter且转换A主机,也可以在A主机安装VMware-converter转换网络上的远程B主机(B主机可以是物理机,也可以是虚拟机),转本地主机一般很顺利,不会有啥问题,但转换远程主机往往出现各种报错信息,无法一次顺利完成。

本文讲述转换之前的准备工作,并列出各种报错信息的解决方法。

本文以A主机安装VMware Workstation转换远程B主机为例讲解,如果你用VMware-converter转换,报错信息是一样的。

路径是VMware Workstation Pro-文件-虚拟化物理机(需要提前安装VMware-converter)。

转换问题出自于两处:A→B之间的网络,以及待转换主机(B主机)自身。

转换之前的准备工作:

① 在转换过程中需要访问B主机的80,135,445端口,确保AB之间的路由器/防火墙,以及B主机的Windows防火墙没有阻挡这些端口,建议B主机干脆关闭防火墙,以及关闭用户账户控制(UAC)。

② 你对A主机和B主机有管理权限,也就是需要知道A主机与B主机的管理员账号密码;没错,A主机也需要用账号密码登录,如果之前是无密码直接登录,就临时加上登录密码,转换后再撤掉。

③ 转换过程需要往B主机的隐藏共享admin$写入代理程序,要确保该AB主机之间网络畅通,B主机的admin$能够被A访问。首先到B主机看看该共享是否存在,因为出于安全考虑,有些系统将其关闭:

     右键”我的电脑-管理-共享文件夹”:      

无标题.png

       如果不存在,就百度恢复admin$的方法,本文不再赘述,然后关闭B主机的防火墙。

       在A主机上操作:运行\\192.168.255.129/admin$ (IP按照自己的实际情况填写)访问B主机,输入用户名和密码之后如果提示拒绝访问:       

图片1.png

          就把下列代码保存为.reg文件导入B主机的注册表,或手动修改注册表: 

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\]
"LocalAccountTokenFilterPolicy"=dword:1

        再次尝试,如果进入了目录就表明可以访问admin$。

④ 运行:net use * /del /y 删除之前的连接。

当admin$可以访问,运行VMware Workstation Pro-文件-虚拟化物理机,开始P2V转换。

转换过程出现的报错信息以及解决方案:

Debian 10.x 64 位-2021-03-28-15-51-33.png

Unable to contact the specified host 192.1683.1.109'.Thehost might not be available on the network, there might bea network configuration problem, or the management services on this host are not responding。

译文:无法联系指定的主机192.1683.1.109,该主机可能在网络上不可用,可能存在网络配置问题,或此主机上的管理服务没有响应。

解决方案:确保AB之间能ping通,B主机的IP地址要填写正确(本例就是168错写成1683),去掉网络安全策略,关闭B主机的防火墙。

无标题.png

The operation could not be completed for '192.168.255.129\ADMIN$' due to incorrect usercredentials。

译文:由于用户凭据不正确,无法完成对“192.168.255.129\ADMIN$”的操作。

解决方案:B主机必须设置密码、输入的密码要正确,存在\\192.168.255.129/admin$这个隐藏共享且能连接过去(见上文关于隐藏共享的准备工作)、不能设置“简单文件共享”,不要启用“用户账户控制(UAC)”。

无标题.png

Insufficient permissions to connect to'192.168.255.1291ADMIN$'。

译文:权限不足,无法连接到“192.168.255.129\ADMIN$“。

解决方案:网络硬件防火墙是否封了445等端口、B机需要关闭软件防火墙,admin$能被访问(见上文关于隐藏共享的准备工作)、不能设置“简单文件共享”,不要启用“用户账户控制(UAC)”

无标题.png

Multiple connections to '192.168.1.109' by thesame user, using more than one user name,are noRallowed. Disconnect all previous connections to thehost and try again。

译文:不允许同一用户使用多个用户名多次连接到“192.168.1.109”,断开之前与主机的所有连接再试。

解决方案:在A主机运行 net use * /del /y 删除之前的连接。

无标题.png

Unable to complete Converter agent installation on'192.168.1.109'.Error code: 1,603。

译文:无法在“192.168.1.109”上完成Converter agent(转换器代理)的安装,错误代码:1603。

解决方案:将如下文本保存为.reg文件导入B主机的注册表,或者手动修改注册表:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters]
"SMBDeviceEnabled"=dword:00000001

无标题.png

permission to perform this operation was denied。

译文:无权限执行此操作。

解决方案:先在A主机以管理员身份运行VMware Workstation或VMware-converter进行转换,如果仍然报错,在B主机运行secpol.msc(或进入控制面板-管理工具-本地安全策略),进入本地策略-安全选项-用户账户控制-以管理员批准模式运行所有管理员-禁用-重启,再次转换,当看到下图就表明正常连接到了B主机,代理程序也已经写入ADMIN$,接下来就是转换流程了:

无标题.png

转换完毕之后别忘了在虚拟机里再打开防火墙和用户访问控制。