今天写一篇关于libvmi的文章,其实网上有很多关于libvmi的文章,但是,在按照网上的做,编译的时侯没错,但是在执行./example/process-list ubuntu时会报错,就是那些错误导致我对libvmi折腾了一两周,下面进行开讲。
首先讲下,这篇使用libvmi的环境:
源码:https://github.com/libvmi/libvmi#
系统:ubuntu14.04
虚拟机:Xen-4.4
在使用libvmi的example下的指令前须配置/etc/libvmi.conf文件(下篇讲)
一.编译libvmi的源文件
命令:cd libvmi-master/
./autogen.sh
./configure
//如果报错:Error: aclocal not found
//解决办法: sudo apt-get install automake autoconf
//如果报错:Error: Package requirements (glib-2.0 >= 2.16) were not met
//解决方法:$ sudo apt-get install libglib2.0-dev
//如果报错:Error: Package requirements (check >= 0.9.4) are not met:
//解决方法:$ sudo apt-get install check
$ make
$ sudo ldconfig
$ sudo make install
//注意上面的./configure命令,在编译过程中会出现下面的东西,一定要注意:
Feature | Option | Reason
-------------|---------------------------|----------------------------
Xen Support | --enable-xen=yes | yes
Xen Events | --enable-xen-events=yes | yes
KVM Support | --enable-kvm=no | libvirt missing
File Support | --enable-file=yes | yes
Shm-snapshot | --enable-shm-snapshot=no | no
-------------|---------------------------|----------------------------
OS | Option
-------------|--------------------------------------------------------
Windows | --enable-windows=yes
Linux | --enable-linux=yes
Tools | Option | Reason
-------------|---------------------------|----------------------------
VMIFS | --enable-vmifs=no | FUSE library missing (libfuse-dev)
//注意:如果看一下,你会发现,如果你要libvmi能够支持Xen,则Xen Support | --enable-xen=yes 而且Xen Events | --enable- xen-events=yes ,其他的一样,如果类似于上面的KVM Support | --enable-kvm=no | libvirt missing,是不支持kvm的,而且缺少liobvirt库
//那么在库都不缺少的时侯,如何使Xen Events | --enable-xen-events=no变为Xen Events | --enable-xen-events=yes呢?
//注意:./configure --enable-xen-events=yes
//也可以使Xen Events | --enable-xen-events=yes变为Xen Events | --enable-xen-events=no,使用下面的参数:
./configure --enable-xen-events=no
二.执行libvmi命令获取虚拟机信息
命令:cd libvmi-master/examples
sudo ./process-list ubuntu-qk
注意:此处的ubuntu-qk是你用sudo xl list(有些版本的是sudo xm list)查到的虚拟机名字
注意:自此处可能会遇到的一些问题:
1)像这个问题:Re: [libvirt-users] ERROR: Domain not found: no domain with matching nam
解决方案:可能是你缺少xenstore库,导致你的libvmi在./configure时不支持xen 和xen event,可以在./configure时验证看上面提到的xen,xen-event处的结果,为no,看后面的missing **,这个**可能就是你缺少的库,装上就好了
2)问题:VMI_ERROR: Found more than one VMM or file to use, please specify what you w_
解决方法:在libvmi进行./configure的时侯,如果kvm和xen同时支持的话,会包这个错,解决方法,如果分析xen的,则在编译的时侯./configure --enable-kvm=no,就可以了