Openstack 中的Windows 2008云主机关机最好在系统里面进行,否则容易出现BOOTMGR is missing,Press Ctrl+Alt+Delete to restart!出现这种情况的原因是:不正确的系统安装或者是系统盘分区崩溃。
要解决这种问题需要的文件:volume_name.qcow2文件、安装系统时的ISO文件、VirtIO驱动文件及volume-XXX的云主机磁盘文件。
解决这种问题的步骤比较复杂,分成好几步来做:
1.拷贝云主机的系统盘,生成一个系统盘的快照。
#rbd -p volume snap create volume-XXX@datetime
2.产生系统的qcow2文件:
#qemu-img create -f qcow2 -b volume-XXX volume_name.qcow2
补充:第1,2步可以先通过给云主机创建镜像,然后通过glance image-download $IMAGE_UUID下载系统镜像的方式获取到磁盘文件。
3.拷贝系统安装时的ISO文件到计算节点。
4.查看云主机的VNC
#nova get-vnc-console VM_UUID novnc
5.设置VM为维护模式(ERROR):
#nova reset-state VM_UUID
6.virsh添加系统ISO及VirtIO驱动:
#virsh
#attach-disk instance-0000XXXX /var/lib/nova/windows2008R2.iso hdb --type cdrom --mode readonly --config
#attach-disk instance-0000XXXX /var/lib/nova/VirtIO.iso hdc --type cdrom --mode readonly --config
7.修改云主机的启动方式,把默认的从硬盘启动改为从光盘启动:
#destroy instance-0000XXXX
#edit instance-0000XXXX
把boot dev='hd'改成cdrom
8.启动云主机:
#start instance-0000XXXX
9.修复计算机:
使用系统的ISO引导云主机开机后进入修复模式,点击“修复您的计算机”。
10.手动选择好相应的windows2008的磁盘驱动程序。
选择“加载驱动程序”--挂载的VirtIO光盘的路径。加载文件名为/viostor/2k8R2/amd64/vistor。添加的驱动程序为:Red Hat VirtIO SCSI Controller。
系统恢复选项--选择恢复工具:
进入命令行模式,找到系统盘符。
找系统盘符的过程是输入C: 和dir命令。比如E:和dir或者C: 和dir命令找到系统盘符。
然后后输入 :
bootrec/rebuildbcd
y
exit
11.重启后继续修复云主机:
可以找到系统分区,在命令行输入
cd recovery
startrep.exe
修复完成重启云主机。
12.关机云主机:
#virsh
#destory --graceful instance-0000XXXX
13.修改云主机的配置文件,把从光盘启动改为hd硬盘启动
#edit instance-0000XXXX
把boot dev='cdrom'改为hd
14.卸载光盘:
#detach-disk instance-0000XXXX hdb --config
#detach-disk instance-0000XXXX hdc --config
15.启动云主机:
start instance-0000XXXX
16.设置云主机为active状态:
nova reset-state VM_UUID --active
17.删除云主机系统盘的快照:
rbd -p volumes snap ls volume-XXXX
rbd -p volumes snap rm snap-datetime