想验证下最新版本的qemu的一些功能,于是将其从qemu-0.12升级到了qemu-1.4,编译安装一切都很顺利,但是当创建virtual machine时,报错如下:
[root@compute-30-02 data3]# virsh create ubuntu.xml error: Failed to create domain from ubuntu.xml error: unknown OS type hvm
首先来看一下,ubuntu.xml
<domain type='kvm'> <name>vm1</name> <memory>1048576</memory> <vcpu>4</vcpu> <os> <type arch='x86_64' machine='pc'>hvm</type> <boot dev='cdrom'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/local/bin/qemu-system-x86_64</emulator> //新编译安装的qemu <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/data3/vm1.qcow2'/> <target dev='vda' bus='virtio'/> </disk> <disk type='file' device='cdrom'> <source file='/data3/ubuntu.iso'/> <target dev='hdb' bus='ide'/> </disk> <interface type='network'> <source network='default'/> </interface> <input type='mouse' bus='ps2'/> <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/> </devices>
网上google了很多解决方法,比如确认kvm,kvm-intel等内核模块是否加载等,其实这些都不是正确的解决方法,网上到有人说运行virsh capabilities命令。其实,根本的原因在于qemu的可执行命令必须位于/usr/bin下才行,否则,virsh capabilities找不到其可执行文件,所以报错了。可见上面配置文件的红色加粗字体<emulator>/usr/local/bin/qemu-system-x86_64</emulator> ,并不在/usr/bin目录下,所以解决方法就是在/usr/bin目录下建一个符号链接就ok了!
一个非常简单的问题,可能会耗去你非常多的时间,最后发现一点技术含量没有,但是如果不跨过这道坎,再有技术含量的工作也不能进行,个人感觉每个工作都有其非常重要的作用,小细节决定大成败!
有的公司一个人做好几个项目,有的公司好几个人做一个项目,道理可能就在这吧!
转自:http://blog.chinaunix.net/uid-20940095-id-3586811.html
有的时候把libvirtd升级了后..或者qemu重新安装后
virsh list 没有虚拟机信息..
但是ps的看一下..虚拟机都在跑着...并没有什么异常...
原因就是虚拟机xml里面定义的emulator路径有问题.
只要把qemu的路径定义正确.然后重启一下libvird服务...虚拟机状态就都回来了..