error: unkown OS type hvm 解决方法 kvm libvirtd 重新加载已有虚拟机信息

想验证下最新版本的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服务...虚拟机状态就都回来了..

原文地址:https://www.cnblogs.com/wayde-Z/p/8378585.html