经典案例:一台蓝屏的物理机成功迁移到虚拟化的过程

  知识点

1 修复无法启动的服务器

一台DELL PowerEdge 2900的服务器,配置了2块146GB的硬盘(做的RAID-1),安装的Windows Server 2003操作系统,上面有企业早期的财务数据。这个财务软件是多年前使用的,当时实施的公司也不在了,现在只有这一台服务器上保存了早期的财务数据,财务部门有时候会查询一下以前的数据。

在一次断电之后,服务器不能启动,提示如下错误,如图1所示。

image.png

图1 文件丢失

使用Windows PE工具U盘启动,打开服务器C盘文件夹,可以看到Windows文件夹,但找不到system32目录。用户尝试了一天也没解决。

我过去之后,使用Windows PE工具U盘启动服务器,同样没有找到c:\windows\system32文件夹,我分析是系统因服务器突然断电造成的文件损坏或丢失,在命令提示符中执行chkdsk c: /f命令修复磁盘,恢复孤立文件,如图2所示。

image.png

图2 修复磁盘

修复磁盘之后,找回了system32文件夹,并且里面也有ntoskrnl.exe文件。但重新启动服务器,从服务器硬盘启动仍然出现图1所示错误。

再次使用Windows PE工具盘启动服务器,使用Windows PE中的“Windows修复”功能(如图3所示),修复引导环境,修复之后,重新启动服务器,进入操作系统。当前是Windows Server 2003操作系统。此时用户的应用程序可以使用。

image.png

图3 修复服务器

2 尝试P2V到虚拟化环境

在修复服务器之前我发现这台服务器有一块硬盘已经亮黄灯,我提示用户换硬盘。另外建议,这台服务器这么多年了,为什么不迁移到虚拟化环境中。用户表示,当时提供这个软件的公司也不在了,软件当时安装配置比较复杂,也没安装程序,另外这个软件还有一个加密狗。我告诉用户,加密狗问题好解决,使用迁移工具,将当前的这台物理服务器整体迁移到虚拟化环境中,这样就不担心再损坏了。

然后我们开始尝试迁移这台物理机到VMware vSphere 5.5的环境中(用户有2台ESXi 5.5的服务器、1台共享存储)。先使用Veritas System Recovery软件尝试备份服务器,但没有成功。Veritas System Recovery 18.0已经不再支持Windows Server 2003环境。然后再在这台Windows Server 2003物理机安装vCenter Converter 5.0的软件,执行从当前物理机到虚拟机环境的热克隆,但任务执行到7%时出错,如图4所示。

image.png

图4 执行进度到7%出错

因为当时使用Converter迁移物理机到虚拟化环境时速度比较慢(从图4可以看出进度执行到7%用了5小时27分钟),我在执行P2V之后就离开了。用户反馈进度到7%失败。

3 Ghost备份成功之后蓝屏

因为有一个硬盘已经报警,我告诉用户,先使用ghost备份软件,把当前这台服务器备份一下。用户使用Windows PE的ghost工具软件将服务器C盘备份成.gho文件,但是备份完成后,重新启动服务器进入Windows Server2003操作系统,进入桌面后就蓝屏了,再次启动服务器时,服务器蓝屏,如图5所示。

image.png

图5 蓝屏

我分析,造成这个问题的原因是:使用Windows PE备份服务器时,在备份完成后,Windows PE工具U盘的作者为了推广软件,应该是往服务器硬盘中导入了一些安装文件,在进入操作系统桌面后自动安装了一些软件,造成了系统冲突导致蓝屏(这台服务器运行的是Windows Server 2003,而现在的这些软件,都是在Windows 7及其以上的操作系统运行的)。服务器蓝屏之后,无论是进安全模式,还是使用最后一次正确配置,都无法进入桌面,都是蓝屏。安装的软件也无法卸载,服务器等于是无法使用了。

4 从GHOST镜像文件恢复到虚拟机中

既然服务器已经无法使用,只能想办法将这台蓝屏的服务器,迁移到虚拟化环境中使用了。

当前服务器有C、D、E三个分区,用户只克隆了C分区。当出现蓝屏故障之后,又让用户分别将D、E分区克隆成镜像文件并拷贝出来。

我拿到C、D、E三个分区的Ghost文件后,执行如下的步骤。

(1)在VMware Workstation中创建一个Windows Server 2003的虚拟机,该虚拟机有3个硬盘,硬盘大小分别是40GB、40GB、100GB,对于原来的C、D、E三个分区。

(2)将原来服务器的C、D、E的Ghost镜像文件分别恢复到虚拟机的三个磁盘中。这一部可以将用户备份的C、D、E三个分区的镜像文件,合并到Windows PE的ISO镜像文件中,使用该镜像文件启动到Windows PE,然后再将ISO中的gho镜像文件恢复到三个磁盘。

(3)将GHOST镜像恢复到C、D、E三个磁盘后,使用Windows PE的ISO启动虚拟机,打开资源管理器,在“c:\Documents and Settings\All Users\[开始]菜单\程序\启动”文件夹中发现添加了一个名为Goqhkm.vbs的脚本,查看该文件属性允许Everyone用户读取和运行,修改安全属性为Everyone用户完全控制(如图6所示),然后删除该文件。

image.png

图6 修改在启动菜单中被添加的脚本的安全属性

(4)继续检查,发现在c:\windows文件夹有一个Goqhkm01234.exe的文件,将该文件扩展名从exe改为eex(或其他非可执行文件扩展名),或者直接删除。该文件的安全属性为Users读取和运行,需要为Users用户添加“完全控制”权限才能删除。

image.png

图7 多出的可疑文件

(5)检查发现在c:\windows多出Ycczuvrmi文件夹,该文件夹下有一些推广程序,如图8所示。删除Ycczuvrmi文件夹。

image.png

图8 删除多余的Ycczuvrmi文件夹

【说明】(1)在实际情况中,根据U盘制作者不同、版本不同,上述脚本及推广的文件夹可能不同。大家可以对文件夹根据时间排序,查看当时执行GHOST这一时间增加或修改的文件夹。重点检查“所有用户\启用”文件夹、Windows、Windows\system32文件夹。

(2)虽然已经将GHOST镜像恢复到虚拟机中,但此时操作系统的驱动仍然是原来物理机的驱动,此时如果启动虚拟机,不能进入操作系统,也会出现死机或蓝屏的现象,需要使用工具,将这个系统转换成适合虚拟机使用的,即使用第三方工具,替换Windows Server 2003操作系统的驱动为虚拟机的驱动才可。

5 使用Converter 的P2V光盘转换成虚拟机

现在VMware Converter的转换工具是在线转换,需要迁移的源计算机能正常运行。但现在物理机不能运行。这时候可以使用离线工具。VMware Converter 4.0版本中cold clone启动光盘,可以实现离线迁移功能。

(1)使用VMware Converter cold clone 4.03的ISO文件,启动Windows Server 2003的虚拟机,将这台计算机转换成VMware Workstation的虚拟机文件并通过网络保存在文件服务器中(详细请看第6节)。

(2)将第(1)步中转换的虚拟机使用VMware Workstation虚拟机打开。

(3)虚拟机可以进入操作系统,但是以Administrator账户登录进入系统后自动关机。因为当前计算机设置了开机自动以Administrator账户的方式登录进入操作系统。为了避免开机自动登录进入操作系统并关机,使用Windows PE的ISO镜像启动虚拟机,清除Administrator账户的密码。在清除Administrator账户密码时,记下当前操作系统都有多少账户。

(4)重新启动Windows Server 2003的虚拟机,但以管理员登录进入后仍然关机。再次启动虚拟机,以普通用户登录进入系统,此时虚拟机不关机,程序运行正常。

(5)关闭VMware Workstation的虚拟机,导出为OVF文件。

(6)使用vSphere Client登录到vCenter Server,导入第(5)步中导出的OVF文件。

(7)修改虚拟机配置,添加USB控制器,在服务器上添加加密狗,添加USB设备,如图9所示。

image.png

图9 添加USB加密狗

(8)启动进入系统,如图所示。在执行财务软件时,用鼠标右键单击,选择“运行为”,在弹出的对话框中选择Administrator并按回车键(当前Administrator密码为空),进行财务软件,如图10所示。

image.png

图10 使用财务软件

(9)如果要为当前虚拟机设置IP地址、子网掩码、网关,可以在桌面上新建指向cmd.exe的快捷方式,然后以“运行为”方式使用Administrator帐户执行CMD.exe程序,例如要将“本地连接”网卡设置172.16.8.20、子网掩码为255.255.255.0,网关为172.16.8.254,则执行如下的命令。

netsh  interface  ip  set  address “本地连接”  static 172.16.8.20  255.255.255.0 172.16.8.254 1

注意,在网关地址之后有一个数字1代表确定。

(10)经过进一步检查,发现开机登录后自动断电关机,是因为服务器感染了病毒,病毒检测windwos是否在虚拟机环境下运行,如果在虚拟机环境运行则自动关机。用PE的ISO文件启动虚拟机,删除C:\WINDOWS\linkinfo.dll文件或将文件改名就可以解决以管理员登录进入系统自动关机的问题。至此问题完美解决。

6 使用VMware Converter引导光盘冷克隆物理机

VMware Converter cold clone 4.03是VMware提供的一个P2V的迁移工具,可以将该ISO刻录成光盘引导服务器以“冷克隆”的方式将物理机系统和数据克隆为适合VMware 环境虚拟机运行。在本节利用这个工具将计算机转换为虚拟机(本质是先执行克隆操作,然后再将克隆之后的操作系统的驱动替换为VMware的驱动程序,以适于虚拟机运行)。

(1)使用cold clone 4.0.3的ISO启动虚拟机,进入vCenter Converter向导,如图11所示。

image.png

图11  vCenter Converter引导光盘向导

(2)在“vCenter Converter”页,接受许可协议

(3)在出现“Update Network Parameters”对话框中,如果网络中有DHCP服务器,可以单击“no”按钮;如果没有DHCP服务器,需要手动设置IP地址,则单击“Yes”按钮,如图13所示。

image.png

图13 手动设置参数

(4)在“Network Configuration”页,指定IP地址等参数,如图14所示。

image.png

图14 设置IP地址

(5)进入VMware vCenter Converter页后,单击“Import Machine”,进入vCenter Converter导入向导页。

(6)在“Source Data”页,选择导入的磁盘,如图15所示。

image.png

图15  源数据

(7)在“Destination Type”页,选择目标属性,在本例中选择“Other VMware Virtual Machine”,如图16所示。

image.png

图16  导入目标

(8)在“Virtual Machine Name and Location”页指定导出的虚拟机的名称、保存位置,本示例保存到网络的一个共享文件夹里,共享文件夹的地址为\\192.168.80.134\vm,按回车键后输入目标共享文件夹的管理员账户和密码,如图17所示。

image.png

图17 保存位置及名称

(9)在“VM Options”对话框选择“Allow virtual disk files to grow”,如图18所示。

image.png

图18 虚拟机配置

(10)在“Networks”为迁移后的虚拟机选择网络,本示例选择一个网卡、网络属性为桥接,如图19所示。

image.png

图19 选择网络

(11)在“Customization”页,选择迁移后的设置,例如可以选择“Install VMware Tools”与“Remove all System Restore checkpoints”,如图20所示。

image.png

图20  定制

(12)在“Ready to Complete”页,查看设置,如果有问题,可以单击“Back”按钮返回设置,如无误单击“Finish”按钮,如图21所示。

image.png

图21  准备就绪

(13)之后vCenter Converter会按照上文的设置,迁移物理机到虚拟机里,直到迁移完成,如图22所示。

image.png

图22 迁移完成

(14)迁移完成后,关闭虚拟机。然后将保存在\\192.168.80.134\vm共享文件夹里的虚拟机复制出来(如图23所示),使用VMware Workstation打开扩展名为.vmx的虚拟机配置文件,打开并启动虚拟机。

image.png

图23 导出后的VMware Workstation格式的虚拟机

使用VMware Converter引导光盘冷克隆物理机到虚拟机就介绍到此。