今天写一篇关于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,就能够了