• qemu与libvirt编译与安装


    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

  • 相关阅读:
    每日日报
    剑指 Offer 18. 删除链表的节点(LeetCode)
    java的访问权限
    java从键盘输入
    剑指 Offer 22. 链表中倒数第k个节点(快慢指针)(LeetCode)
    面试题 02.03. 删除中间节点(LeetCode)
    21. 合并两个有序链表(Leetcode)
    计算总线数据传输率
    时钟周期、总线周期(机器周期)区别
    书单(个人)
  • 原文地址:https://www.cnblogs.com/grglym/p/8053553.html
Copyright © 2020-2023  润新知