centos - Openstack 实例 - 没有可启动设备

标签 centos virtualbox instance openstack qemu

我已经在托管在 VirtualBox 机器上的多节点架构上部署了 Openstack。现在我正在尝试启动我的第一个实例,使用 qcow2 centos 图像,但每次我这样做都会收到以下错误:

Booting from Hard Disk... 

Boot failed: not a bootable disk

No bootable device

error printscreen

我提到我使用了来自官方 centos 存储库的图像,但我也使用 Virtualbox 构建了我自己的 qcow 图像。在这两种情况下,结果相同。 我不知道是什么原因导致的,也不知道应该从哪里开始调查。

最佳答案

在创建新虚拟机时,virt-manager 似乎不会读取预先存在的镜像的硬盘镜像格式,而是选择“原始”格式。由于 virt-manager 似乎在内部存储它的设置,因此您不能只编辑 ~/.libvirt/qemu/VMNameHere.xml 文件。

您必须将 libvirt 虚拟机设置导出到 xml,修复硬盘镜像格式,然后将虚拟机设置导入回 libvirt。

获取虚拟机名称: 代码:

virsh -c qemu:///session list --all

如果你的虚拟机在系统帐户而不是你的用户帐户中,请将 qemu:///session 替换为 qemu:///system

导出虚拟机设置: 代码:

virsh -c qemu:///session dumpxml VMName > ~/Desktop/VMName.xml

更新xml文件中的硬盘格式:

代码:

From   
<devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/storage/vmimages/Windows7_x64-01/qcow2-60GB_HDD1.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>
To
<devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/storage/vmimages/Windows7_x64-01/qcow2-60GB_HDD1.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>

在 virt-manager 中删除旧的 vm 设置:

打开virt-manager,删除有问题的vm,但一定要留下硬盘镜像

在固定的xml文件中导入:

代码:

virsh -c qemu:///session define ~/Desktop/VMName.xml

虚拟机将自动出现在 virt-manager 中。

虚拟机现在应该可以正常工作了。

其他说明: 我使用 virt-manager 加载到虚拟机中的每个硬盘镜像都会出现此 qcow2/raw 问题,因此我每次都必须编辑并重新导入 xml。

您可以关闭 libvirt-bin 和 qemu-kvm 服务,编辑 ~/.libvirt/qemu/VMNameHere.xml 文件并以更短的方法重新启动,但我没有验证这是否有效。

希望这会节省几个小时的搜索时间。

关于centos - Openstack 实例 - 没有可启动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51862811/

相关文章:

go - 如何通过 `exim -t` 发送密件抄送电子邮件? ["sendmail look alike"模式]

c++ - 从函数返回错误的实例

java - 用 this 调用实例方法

javascript - 如何在 Javascript 中测试相同的对象实例?

centos - 重启后如何保持透明的hugepages配置?

ruby - CodeDeploy 代理安装错误::/usr/bin/env : ruby​​ Not found

linux - SSH 跨网络中的所有机器,怎么样?

compilation - 动态重新编译如何处理软件虚拟化中的指令指针检查?

linux - 如何在 Windows 主机上的 Vagrant 中以区分大小写的方式处理文件

python - 从 Python 查看 vmdk 文件?