qemu与libvirt编译与安装

一 、qemu编译前准备

以下链接为的本次编译环境为前提继续进行。

http://www.cnblogs.com/grglym/p/7891253.html

1、安装必要依赖包

sudo apt-get install libyajl-dev libglib2.0-dev   

二、下载qemu源码

1、qemu可以在官网链接中直接下载最新版本

http://git.qemu-project.org/qemu.git

2、从git上下载

git clone git://git.qemu.org/qemu.git

两种方式都可以下载qemu源码。本文利用git来下载。

三、编译安装qemu

1、qemu源码路径如图1所示:

图 1

因为默认的qemu安装路径是/usr/local/下,所以如果直接运行./configure指令来配置qemu对后续会带来不必要的麻烦。所以直接利用configure的配置指令prefix,使得qemu的安装路径重定向。

./configure --prefix=/usr
make
make install

安装完成后,可在/usr/bin/目录下查看qemu的安装文件,部分如图2所示。

图 2

2、运行如下指令创建qcow2格式的文件供后续操作使用

qemu-img create -f qcow2 test.img 10G

四、libvirt编译安装

1、安装依赖包

apt-get install -y libpciaccess-dev libxml2 libxml2-dev gnutls-bin libgnutls-dev
apt-get install -y libdevmapper1.02.1 libdevmapper-dev libnl-dev

2、下载

git方式:

git clone git://libvirt.org/libvirt.git

官网上下载:

https://libvirt.org/sources/libvirt-3.2.0.tar.xz

本文从官网上下载,需要解压。

xz   -d    libvirt-3.2.0.tar.xz
tar xvf libvirt-3.2.0.tar

3、编译安装

./autogen.sh --system
make
sudo make install

autogen.sh的脚本命令中的system配置参数是根据自身系统的环境将相应的可执行程序安装到系统匹配的目录下。

4、安装验证,如图3所示

which libvirtd
which virsh

图 3

virsh list

运行如上指令可能会出现如下错误,这是因为libvirtd服务没有起来

error: failed to connect to the hypervisor
Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

解决办法

/usr/sbin/libvirtd -d

通过以下命令来查看qemu支持的客户机类型(如x86_64,i686等),如果没有将qemu编译安装到指定的/usr/目录下,没有<guest>标签的信息。图4为执行指令后的部分截图。

virsh capabilities

 

图 4

五、运行客户机

1、编写test.xml配置文件:

<domain type='kvm'> //域类型kvm xen等
<name>linux</name>//虚拟机名字 linux
<memory unit='KiB'>1048576</memory>//虚拟机的最大内存
<currentMemory unit='KiB'>1048576</currentMemory>//虚拟机当前的内存
<vcpu placement='static'>1</vcpu>//cpu个数:1
<os>
<type arch='x86_64' machine='pc'>hvm</type>//hvm表示全虚拟化
<boot dev='hd'/>//启动项
<boot dev='cdrom'/>//启动项
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/qemu-system-x86_64</emulator> //新编译安装的qemu
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/home/ruijie/Documents/test.img'/>
<target dev='hda' bus='ide'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/ruijie/iso/ubuntu-14.04.5-desktop-amd64.iso'/>
<target dev='hdb' bus='ide'/>
</disk>
<interface type='bridge'>
<mac address='52:54:00:4f:1b:07'/>
<source bridge='br0'/>
</interface>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
</devices>
</domain>

2、运行如下指令启动

virsh define test.xml
virsh start linux (需要提前建立br0网桥)

3、在运行define可能出现如下错误

error: Failed to start domain linux
error: Failed to connect socket to '/var/run/libvirt/virtlogd-sock': Connection refused

这是因为virtlogd这个日志服务没有启动,运行如下指令即可

virtlogd -d

4、通过vnc来连接客户机 

virsh vncdisplay linux

通过如上指令来查看域的vnc端口号

图 5

图 6

qemu与libvirt编译与安装的更多相关文章

  1. QEMU KVM libvirt 手册(1): 安装

    安装 对虚拟化的支持通常在BIOS中是禁掉的,必须开启才可以. 对于Intel CPU,我们可以通过下面的命令查看是否支持虚拟化. # grep "vmx" /proc/cpuin ...

  2. Linux下编译安装qemu和libvirt

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

  3. Linux下编译安装qemu和libvirt【转】

    转自:http://www.cnblogs.com/findumars/p/5679742.html 目录 [hide] 1 安装qemu 1.1 qemu介绍 1.2 下载源文件 1.3 编译安装 ...

  4. KVM,QEMU,libvirt入门学习笔记【转】

    转自:http://blog.csdn.net/julykobe/article/details/27571387 注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明. 0.虚拟 ...

  5. Linux虚拟化技术KVM、QEMU与libvirt的关系(转)

    说明:个人理解,KVM是内核虚拟化技术,而内核是不能使用在界面上使用的,那么此时QEMU提供了用户级别的使用界面,相互辅助.当然,单独使用QEMU也是可以实现一整套虚拟机,不过QEMU+KVM基本是标 ...

  6. KVM/QEMU/qemu-kvm/libvirt 概念全解

    目录 目录 前言 KVM QEMU KVM 与 QEMU qemu-kvm Libvirt Libvirt 在 OpenStack 中的应用 前言 如果是刚开始接触虚拟机技术的话, 对上述的概念肯定会 ...

  7. linux下包不重新编译php安装openssl 扩展

    今天在刚装好的centos上安装composer,老是报错,提示不安全的,后来发现是由于https的缘故,需要openssl,可能是开始装php的时候没有安装此扩展,网上有好多方案,一开始我认为只有重 ...

  8. 在Linux CentOS上编译并安装Clang 3.5.0

    编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装. (注:CentOS的版本是6 ...

  9. Linux中编译、安装nginx

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器. Nginx 是由Igor Sysoev为俄罗斯访问 ...

随机推荐

  1. Nginx http keepalive针对客户端行为指令

    keepalive 描述 多个http请求可以复用Tcp链接  减少握手次数 通过减少并发连接数减少服务器资源消耗 降低Tcp拥塞控制影响 Syntax: keepalive_disable none ...

  2. ElasticSearch查询 第四篇:匹配查询(Match)

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  3. Code POJ - 1850 组合数学

    题意 :字符串从a=1 b=2 c=3....z=26  ab=27开始编号 每个都是升序的 给出字符串问是几号 思路:主要是要看n位字符串有多少个 这里需要用组合数学的思想  组合数用杨辉三角形递推 ...

  4. [NOIP2017] 逛公园 【最短路】【强连通分量】

    题目分析: 首先考虑无数条的情况.出现这种情况一定是一条合法路径经过了$ 0 $环中的点.那么预先判出$ 0 $环中的点和其与$ 1 $和$ n $的距离.加起来若离最短路径不超过$ k $则输出$ ...

  5. Django+Xadmin打造在线教育系统(四)

    完成授课机构的功能 模板继承 在templates目录下,新建base.html,剪切org-list.html内容到里面 编写org-list.html内容 继承base.html,将里面的面包屑和 ...

  6. jsp配置

    jsp.server.xml <Host name="localhost" appBase="webapps" unpackWARs="true ...

  7. kubernetes 基础命令及操作

    获取集群的基本信息kubectl cluster-infokubectl get nodeskubectl get namespaceskubectl get deployment --all-nam ...

  8. 【UOJ#246】套路(动态规划)

    [UOJ#246]套路(动态规划) 题面 UOJ 题解 假如答案的选择的区间长度很小,我们可以做一个暴力\(dp\)计算\(s(l,r)\),即\(s(l,r)=min(s(l+1,r),s(l,r- ...

  9. js-元素相关

    获取元素方法一 可以使用内置对象document上的getElementById方法来获取页面上设置了id属性的元素,获取到的是一个html对象,然后将它赋值给一个变量,比如: <script ...

  10. 763. Partition Labels

    我一开始看数据范围很小,没怎么想就直接暴力了. 暴力的思路是: 对于每一段S的前缀,这个前缀中的每一个字母都不应该在前缀的补集中出现,所以直接循环i:0 to S.length然后对于每一次循环,再循 ...