libvirt 升级导致虚拟机无法看到驱动器(未找到启动媒体)

libvirt 升级导致虚拟机无法看到驱动器(未找到启动媒体)

我升级到了 Ubuntu 12.04.1,现在 libvirt(通过 open nebula)成功运行了 vms,但它们找不到 2 个驱动器(具体来说,是启动驱动器)。一个是“hd”,另一个是“cdrom”。

机器启动但失败并显示类似“未找到启动媒体 hd”的内容(这是在 vnc 终端中,我没有将输出复制到任何地方,所以这不是逐字消息)。

我尝试使用新版本的 qemu(通过 vmbuilder)构建新磁盘,但这台新机器与旧机器存在同样的问题。

如果它很重要(我不明白为什么会这样)我正在使用开放星云来管理机器。

任何日志中都没有任何相关内容:系统日志libvirtd奥内德。也就是说,当机器启动时没有报告任何有趣/异常的事情。

版本

虚拟器 0.9.8-2ubuntu17.4

qemu-kvm1.0+noroms-0ubuntu14.3

libvirt xml 配置部分(相关)

<os>
  <type arch='x86_64' machine='pc-1.0'>hvm</type>
  <boot dev='hd'/>
</os>
...
<devices>
  <emulator>/usr/bin/kvm</emulator>
  <disk type='file' device='disk'>
    <driver name='qemu' type='qcow2'/>
    <source file='/var/lib/one//203/images/disk.0'/>
    <target dev='sda' bus='scsi'/>
    <alias name='scsi0-0-0'/>
    <address type='drive' controller='0' bus='0' unit='0'/>
  </disk>
  <disk type='file' device='cdrom'>
    <driver name='qemu' type='raw'/>
    <source file='/var/lib/one//203/images/disk.1'/>
    <target dev='sdc' bus='scsi'/>
    <readonly/>
    <alias name='scsi0-0-2'/>
    <address type='drive' controller='0' bus='0' unit='2'/>
  </disk>
  <controller type='scsi' index='0'>
    <alias name='scsi0'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
  </controller>
  <memballoon model='virtio'>
    <alias name='balloon0'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
  </memballoon>
  ...
</devices>

libvirt/qemu 日志包含

2012-11-25 22:19:24.328+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 256 -smp 1,sockets=1,cores=1,threads=1 -name one-204 -uuid 4be6c276-19e8-bdc2-e9c9-9ca5352f2be3 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/one-204.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device lsi,id=scsi0,bus=pci.0,addr=0x5 -drive file=/var/lib/one//204/images/disk.0,if=none,id=drive-scsi0-0-0,format=qcow2 -device scsi-disk,bus=scsi0.0,scsi-id=0,drive=drive-scsi0-0-0,id=scsi0-0-0,bootindex=1 -drive file=/var/lib/one//204/images/disk.1,if=none,media=cdrom,id=drive-scsi0-0-2,readonly=on,format=raw -device scsi-disk,bus=scsi0.0,scsi-id=2,drive=drive-scsi0-0-2,id=scsi0-0-2 -netdev tap,fd=18,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=02:00:c0:a8:00:68,bus=pci.0,addr=0x3 -netdev tap,fd=19,id=hostnet1 -device rtl8139,netdev=hostnet1,id=net1,mac=02:00:ad:f0:1b:94,bus=pci.0,addr=0x4 -usb -vnc 0.0.0.0:204 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6
kvm: -device rtl8139,netdev=hostnet0,id=net0,mac=02:00:c0:a8:00:68,bus=pci.0,addr=0x3: pci_add_option_rom: failed to find romfile "pxe-rtl8139.rom"
kvm: -device rtl8139,netdev=hostnet1,id=net1,mac=02:00:ad:f0:1b:94,bus=pci.0,addr=0x4: pci_add_option_rom: failed to find romfile "pxe-rtl8139.rom"

答案1

这与QEMU 错误 #485251

qemu 和 kvm scsi 总线支持存在问题。只需将 vm 更改为使用 virtio(对于 opennebula,这意味着将上下文驱动器前缀从“s”更改为“v”,即“vda”)。

相关内容