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