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
sudo yum install bc qemu-kvm libuuid-devel libaio-devel gcc zlib-devel glib2 glib2-devel libtool -y
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/
cd qemu-2.4.0.1
patch -p1 < ./kvm-qemu-2.4.0.1-libvmi.patch
./configure --prefix=/usr/ --target-list=x86_64-softmmu --disable-xen --enable-vnc --disable-spice --enable-kvm --enable-linux-aio --disable-docs --enable-vhost-net --disable-libiscsi --disable-smartcard-nss --enable-debug --enable-uuid
make
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 yum install yajl-devel libxml2-python libxml2-devel gnutls-devel device-mapper-devel python-devel libnl-devel libpciaccess-devel dnsmasq bison byacc flex pm-utils -y
sudo yum install xorg-x11-xauth xorg-x11-utils xorg-x11-fonts-* -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 --with-dnsmasq-path=/usr/sbin/dnsmasq
make -j64 && make install && ldconfig
#使libvirt和python绑定
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服务
systemctl start libvirtd
检测是否成功启动:
systemctl status libvirtd
要确定这一步没有报错
检查是否安装成功:
如果出现和pid file有关的问题,尝试用下面解决方法:
3、安装libvmi
yum install check-devel fuse-libs fuse-devel json-c-devel -y
wget https://github.com/libvmi/libvmi/archive/v0.10.1.tar.gz
tar zxf libvmi-0.10.1.tar.gz
cd libvmi-0.10.1
./autogen.sh
./configure --enable-xen=0make && make install && sudo ldconfigcp /usr/local/lib/pkgconfig/libvmi.pc /usr/share/pkgconfigcd ./tools/pyvmipython setup.py build && python setup.py install
4、 搭建网桥
yum install bridge-utils -y
备份网络配置文件,注意不要备份在当前目录下,
cp /etc/sysconfig/network-scripts/ifcfg-eth1 ../ ifcfg-eth1_bk
ifcfg-eth1命名为ifcfg-br0 文件,
mv ifcfg-eth1 ifcfg-br0
修改device和name,增加type:
DEVICE=br0
TYPE=Bridge
NAME=br0
重新创建ifcfg-eth1
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
BRIDGE=br0
然后重启网络服务
systemctl restart network
由于我的网卡是eth1,如果你还有多个网卡,以此类推即可
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搭建--centos使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(四)相关推荐
- linux qemu运行windows,用qemu搭建CentOS 6 for colinux虚拟系统——《Windows下搭建CentOS 6开发环境之一》...
用qemu搭建CentOS 6 for colinux虚拟系统 一.安装的软硬件环境 操作系统: Windows XP SP3 硬件环境: CPU AMD 速龙AthlonII X3 445 (3. ...
- QEMU KVM Libvirt手册(10):Managing Virtual Machines with libvirt
libvirt is a library that provides a common API for managing popular virtualization solutions, among ...
- qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境
准备工作 (1) linux 内核源码, 从github上获取 git clone https://github.com/torvalds/linux make kernelversion (2) 交 ...
- QEMU KVM Libvirt手册(7): 硬件虚拟化
在openstack中,如果我们启动一个虚拟机,我们会看到非常复杂的参数 qemu-system-x86_64 -enable-kvm -name instance-00000024 -S -mach ...
- Linux下编译安装qemu和libvirt
目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 2 安装libvirt 2.1 libvirt介绍 2.2 下载libvirt 2.3 编译安装 3 ...
- QEMU KVM libvirt手册(4) – images
RAW raw是默认的格式,格式简单,容易转换为其他的格式.需要文件系统的支持才能支持sparse file 创建image # qemu-img create -f raw flat.img 10G ...
- linux搭建--ubuntu使用qemu-kvm,libvirt搭建虚拟机,并搭建libvmi来虚拟机自省(三)
qemu版本:2.4.0.1 libvmi版本:0.10.1 libvirt版本:2.4.0 1.安装qemu 准备工作: sudo apt-get update -ysudo apt-get ins ...
- Linux、CentOS简单搭建虚拟主机
Linux.CentOS简单搭建虚拟主机(仅供参考) 1. 基于域名的虚拟主机 a. 新建目录/usr/local/webapps/123 b. 在123目录下面新 ...
- rsync linux yum,使用rsync搭建centos的镜像站
简介 自己一直以来相搭建一个开源镜像站,一方面可以了解搭建镜像站的知识,一方面可以同步那些国内没有的linux发行版软件源,但是最主要的原因只是为了好玩 注意点 我这个教程不是专业教程,但是要注意的是 ...
最新文章
- 如何使ResNet优于EfficientNet?
- 如何用8GB树莓派替代MacBookPro?
- SmartNIC/DPU — 基本组成示例
- java基础-容器-Set
- 复变函数与积分变换-手写笔记
- 【机器学习】LR的分布式(并行化)实现
- JSP页面和产品明细页面的绑定关系在Hybris WCMS cockpit什么地方能够找到
- 海湾标准汉字码表查询_JBQGGST5000标准汉字码表
- 笨方法学Python(一)
- python乱码怎么解决方法_python中文乱码的解决方法
- 磁珠 符号_磁珠简介_磁珠的命名、单位和选型
- pythonidle怎么设置_Python IDLE基本设置
- Google的GDrive美如水中之月
- 5分钟摄像头抓拍一次,居家一天至少89次!尚德员工:连厕所都不敢上
- 什么是zigbee?
- origin做主成分分析图_Graphpad Prism也可以做主成分分析(PCA)?
- 肯塔基大学计算机科学,西肯塔基大学计算机专业
- Free SQL Server tools that might make your life a little easier
- mongotemplate mongodb的各种操作 模糊查询 精确查询 等等
- ARM嵌入式linux培训班视频 全集
热门文章
- python退出程序-Python退出命令的总结
- python语言能做什么软件-什么是Python语言,Python语言可以用来做什么?
- python导入xlsx文件-Python读取xlsx文件的实现方法
- python与excel结合-python3与Excel的完美结合
- Pycharm打开之后一直在扫描,进不去
- 错误:pytube.exceptions.RegexMatchError
- 鸿蒙系统的功能如何,华为鸿蒙系统发布会,这个功能怎么那么像小米MIUI的
- LeetCode Range Sum Query 2D - Immutable
- 如何更改linux文件的拥有者及用户组(chown和chgrp)
- Linux虚拟地址空间布局