qemu版本:2.4.0.1
libvmi版本:0.10.1
libvirt版本:2.4.0

1、安装qemu

准备工作:

 sudo apt-get update -ysudo apt-get install git make patch tar -ysudo apt-get install qemu-kvm -y#提前安装virt-viewer的原因是如果后装virt-viewer会对libvirt产生覆盖,使libvirt安装失败sudo apt-get install vnc4server virt-viewer -ysudo apt-get install zlib1g-dev libglib2.0-dev libtool autoconf flex bison -y

安装qemu,这里会覆盖上面的qemu-kvm中的一些关键包。

wget http://download.qemu-project.org/qemu-2.4.0.1.tar.xz
tar xvfJ qemu-2.4.0.1.tar.xz
#下面这几步的目的是最新的libvmi里有对qemu2.4.0.1的补丁,虽然我们不使用新版的libvmi但是需要里面的patch。
git clone https://github.com/libvmi/libvmi
cd libvmi
cp libvmi/tools/qemu-kvm-patch/kvm-qemu-2.4.0.1-libvmi.patch qemu-2.4.0.1/
sudo apt-get install zlib1g-dev libglib2.0-dev libtool autoconf flex bison -y
cd qemu-2.4.0.1
patch -p1 < ./kvm-qemu-2.4.0.1-libvmi.patch
./configure
make -j16
sudo make install
ldconfig

2、安装libvirt

在安装前先删除系统自带的libvirt,一般在/usr/lib/下,不确定的可以查找一下:

find / -name libvirt-admin*
find / -name libvirt-lxc*
find / -name libvirt-qemu*
find / -name libvirt.so*

找到删除即可,然后安装:

sudo apt-get install libyajl-dev libxml2-dev libdevmapper-dev libpciaccess-dev libnl-3-dev libnl-route-3-dev uuid python-urlgrabber python-libxml2-y
wget http://pkgs.fedoraproject.org/repo/pkgs/libvirt/libvirt-2.4.0.tar.xz/53ebd616857333fc3ce4dea3db986488/libvirt-2.4.0.tar.xz
tar xvfJ libvirt-2.4.0.tar.xz
cd libvirt-2.4.0
#./autogen.sh --system非常重要,可以让新安装的版本和系统发行版有相同路径,这样可以覆盖发行版,不会产生混淆
./autogen.sh --system  --localstatedir=/var --sysconfdir=/etc --enable-compile-warnings=error
make -j64 && make install && ldconfig
#使libvirt和python绑定
sudo apt-get install python-dev -y
git clone https://github.com/libvirt/libvirt-python
cd libvirt-python
python setup.py build && sudo python setup.py install
#安装虚拟机管理工具
git clone https://github.com/rlaager/python-virtinst
cd python-virtinst
python setup.py build && sudo python setup.py install

完成上面两步安装后,启动libvirtd服务

libvirtd -d

检查是否安装成功:

如果出现和pid file有关的问题,尝试用下面解决方法:

3、安装libvmi

 sudo apt-get install python-pip libffi-dev python-docopt libfuse-dev libjson-c-dev check -ypip install pkgconfigpip install futurewget https://github.com/libvmi/libvmi/archive/v0.10.1.tar.gztar -zxvf v0.10.1.tar.gzcd libvmi-0.10.1./autogen.sh./configure --enable-xen=0makesudo make installsudo ldconfig#libvmi绑定python接口cd ./tools/pyvmipython setup.py build && python setup.py install

4、 搭建网桥

sudo apt-get install bridge-utils

修改网络配置文件

vi /etc/network/interfaces

如果固定ip,添加

auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.200.130
network 192.168.200.0
netmask 255.255.255.0
broadcast 192.168.200.255
gateway 192.168.200.1
dns-nameservers 8.8.8.8
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

如果dhcp,添加

auto eth0
iface eth0 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

以上是只有一个eth0网卡的情况下,如果有多个,以此类推即可。
然后reboot就可以了
搭建完成后测试下:

4、安装虚拟机

mkdir /var/data/images/
mkdir /var/data/isoes
#将镜像放到/var/data/isoes下,/var/data/images下存放虚拟机磁盘
qemu-img create -f qcow2 /var/data/images/ubuntu1204.qcow2 20G
#具体参数就不介绍了,注意虚拟机内存不要太大,2G即可,否则后面libvmi将内存溢出。
virt-install --virt-type=kvm --name=u1204 --ram=2048 --vcpus=1 --hvm --cdrom=/var/data/isoes/ubuntu-12.04-server-amd64.iso  --network=bridge=br0,model=virtio --graphics vnc,listen=0.0.0.0 --disk path=/var/data/images/ubuntu1204.qcow2,size=20,bus=virtio,format=qcow2

安装虚拟机直到成功
可以用virsh list --all查看安装完成的虚拟机。

5、配置libvmi

虚拟机安装成功后,需要配置libvmi.conf

touch /etc/libvmi.conf

如何配置libvmi.conf在LibVMI Installation Instructions有介绍。依次完成就好,没有坑。
配置完成后,可以测试一下:
文件pslist.py:

#!/usr/bin/env python
import pyvmi
import sys
def get_os_params(vmi):ostype = vmi.get_ostype()if ostype.lower() == "windows":return get_windows_params(vmi)elif ostype.lower() == "linux":return get_linux_params(vmi)else:print("Sorry, {} ostype is not supported in this example yet.".format(ostype))exit(1)
def get_linux_params(vmi):tasks_offset = vmi.get_offset("linux_tasks")name_offset = vmi.get_offset("linux_name") - tasks_offsetpid_offset = vmi.get_offset("linux_pid") - tasks_offsetlist_head = vmi.translate_ksym2v("init_task")return (tasks_offset, name_offset, pid_offset, list_head)
def get_windows_params(vmi):tasks_offset = vmi.get_offset("win_tasks")name_offset = vmi.get_offset("win_pname") - tasks_offsetpid_offset = vmi.get_offset("win_pid") - tasks_offsetlist_head = vmi.read_addr_ksym("PsInitialSystemProcess")return (tasks_offset, name_offset, pid_offset, list_head)
def processes(vmi):tasks_offset, name_offset, pid_offset, list_head = get_os_params(vmi)next_process = vmi.read_addr_va(list_head + tasks_offset, 0)list_head = next_processwhile True:procname = vmi.read_str_va(next_process + name_offset, 0)pid = vmi.read_32_va(next_process + pid_offset, 0)next_process = vmi.read_addr_va(next_process, 0)if (pid < 1<<16):yield pid, procnameif (list_head == next_process):breakdef main(argv):vmi = pyvmi.init(argv[1], "complete")if vmi.get_access_mode() == 'file':print("Process listing for File {}".format(vmi.get_name()))else:print("Process listing for VM {}".format(vmi.get_name()))for pid, procname in processes(vmi):print "[%5d] %s" % (pid, procname)if __name__ == "__main__":main(sys.argv)

执行 python pylist.py [vm_name],这里vm_name是我们在第4步中安装虚拟机设置的name,而且切记在第4步中虚拟机内存不要开太大,建议2G即可。如果正常输出,则以上所有步骤都搭建成功!
之后可以使用libvmi的github提供的使用volatility来进行虚拟机自省。

参考:
libvirt官网:https://libvirt.org/
libvmi官网:http://libvmi.com/
libvmi最新github项目:https://github.com/libvmi/libvmi

linux搭建--ubuntu使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(三)相关推荐

  1. QEMU KVM Libvirt手册(10):Managing Virtual Machines with libvirt

    libvirt is a library that provides a common API for managing popular virtualization solutions, among ...

  2. QEMU KVM Libvirt手册(7): 硬件虚拟化

    在openstack中,如果我们启动一个虚拟机,我们会看到非常复杂的参数 qemu-system-x86_64 -enable-kvm -name instance-00000024 -S -mach ...

  3. QEMU KVM libvirt手册(4) – images

    RAW raw是默认的格式,格式简单,容易转换为其他的格式.需要文件系统的支持才能支持sparse file 创建image # qemu-img create -f raw flat.img 10G ...

  4. Linux下编译安装qemu和libvirt

    目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3  ...

  5. VMware 虚拟机安装Linux(Ubuntu)系统教程

    VMware 虚拟机安装Linux(Ubuntu)系统教程 1,准备的工具 2,虚拟机中新建Ubuntu系统 1,准备的工具 (1)首先安装VMware 虚拟机软件 (2)在linux Ubuntu官 ...

  6. linux搭建--centos使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(四)

    qemu版本:2.4.0.1 libvmi版本:0.10.1 libvirt版本:2.4.0 1.安装qemu sudo yum install virt-viewer tigervnc -y sud ...

  7. Linux入门开发: 从0开始搭建ubuntu系统环境(编写第一个C程序)

    前言 本篇文作为C语言.Linux入门环境搭建参考文章:真正的从0开始搭建Linux环境. 现在开发学习阶段,笔记本主要还是使用windows系统,为了方便学习Linux系统,重装系统或者安装双系统都 ...

  8. 保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建

    保姆级教程:Linux(Ubuntu 18.04)下VSCode配置与嵌入式开发平台X2000_Halley5调试环境搭建 写在前面 配置VSCode的编译环境 配置VSCode的gdb调试环境 配置 ...

  9. QEMU + KVM环境搭建

    QEMU + KVM环境搭建 QEMU安装 下载qemu源码 #git拉取qemu源码 curtis@curtis-Aspire-E5-471G:~/code/kvm$ git clone git:/ ...

最新文章

  1. JavaScript 的 Promise  和  C# 的 waitone 一样吗?请大家讨论i两句。
  2. [watevrCTF-2019]Pickle Store
  3. 通过live555实现H264 RTSP直播
  4. mysql 中 add2_计算器中的F,4,2,0,ADD2怎么调,MU键有什么用??急急急
  5. 记录之tensorflow和pytorch中的取范数归一化操作
  6. mysql 重置密码语音_数字语音信号处理学习笔记语音信号的同态处理(2)
  7. python函数定义与参数_Python函数的定义方式与函数参数问题实例分析
  8. python逻辑运算的一些流程图_Python大牛历时一个月打造的Python系统学习流程图,超详细!...
  9. day01初步接触python和环境的安装
  10. 没有upcast 也不会发生多态
  11. 服务器×××上的MSDTC不可用解决办法
  12. mysql 长连接_使用mysql的长连接
  13. Microsoft Store打不开解决办法
  14. linux找回cp之前的文件,Linux中找回误删除的文件
  15. 商务部都在努力为直销行业创造良好的发展环境,你还在等什么?
  16. 频繁gc是什么意思_什么情况下会发生full Gc?如何排查频繁发生full Gc的原因?...
  17. openssl生成ras证书
  18. A Game of Thrones(97)
  19. 计算机核心期刊论文审回,专家审回一般要多长时间
  20. 读书笔记 - 学会写作: 什么是写作?

热门文章

  1. python文件输出-python将控制台输出保存至文件的方法
  2. python爬虫从入门到精通-Python网络爬虫开发从入门到精通
  3. 未来教育python视频百度云-2019年计算机二级Python语言程序设计考试大纲
  4. pythonurllib模块-python3之模块urllib
  5. python快乐编程—基础入门-Python零基础快乐学习之旅(K12实战训练)
  6. python创建一个txt文件-python新建txt文件,并逐行写入数据
  7. python if语句多个条件-python if条件判断语句
  8. python 怎么读-Python怎么读
  9. python哪本好-最好的Python入门教材是哪本?
  10. python基础知识面试题-[面试] 1. 关于Python的基础知识