3.2 Windows镜像迁移上云实践
将云下Windows系统创建镜像后迁移到云上启动后,我们有时会发现系统在启动后有很多奇怪的现象,比如
(1)机器有时是能够启动的,但是登录之后发现很多程序不能使用。
(2)IE浏览器是打不开的,双击IE浏览器图标没有反应。
(3)所有和MMC相关的程序都打不开,比如事件查看器、服务管理器和计算机管理器等。
(4)打开某些业务程序时会报告文件找不到。
(5)运行磁盘扫描命令sfcscan会报错:“Windows资源保护无法执行请求的操作”。
Windows在辨认磁盘时是有自己的顺序的,但是在某些情况下可能会出现多盘镜像迁移之后的磁盘卷顺序和迁移之前不同的情况。这种情况可能会导致系统盘没有被辨识为C盘,比如辨识为D盘。这本身并不会导致启动问题,因为Windows系统本身是从环境变量里寻找启动时所需要的驱动的。比如,图3-6所示的注册表中显示,Windows是用路径%SystemRoot%来找到相应的DLL或者SYS的。当系统盘变为D盘之后,SystemRoot也会相应地调整为D:\Windows,因此大部分系统文件都是可以被找到的。
图3-6 Windows正常注册表示例
然而有些安装在其他目录下的组件就不是这样了,如图3-7所示:IE相关的文件安装在C:\Program Files下面,其关联的安装路径在注册表中直接指向C:\Program Files,并没有环境变量,从而导致这些程序启动失败。
图3-7 Windows默认注册表示例
导致应用程序无法打开的原因明确,那么对应的解决方法就非常简单了,我们需要将系统盘改回默认的C盘。但是如果我们直接修改是无法做到这一点的,因为Windows系统会阻止这一行为。因此,我们直接修改注册表挂载设备信息,如图3-8所示,即只要将键值名称的C:和D:对换后再重启系统重新加载即可解决这类问题。
图3-8 注册表挂载设备信息