admin
不忘初心,方得始终
级别: 管理员
只看楼主 | | | 0楼 发表于:2016-11-24 05:07

Openstack中解决Windows 2008云主机关机异常造成的BOOTMGR 丢失

  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