libvirt + qemu - Linux

Andrew avatar
By Andrew
at 2016-12-27T10:43

Table of Contents

host : arch
guest : win7


//libvirt 安裝

# pacman -S libvirt //server
# systemctl enable libvirtd.service
# pacman -S virt-manager //client
# pacman -S bridge-utils //因為只有用到橋接模式 所以只裝這個

因為在同一台機器上用 所以 server 和 client 都有裝
服務開啟後 記得重開機讓 polkit 的設定能正確工作
如果網路部份有其它需求請參考下面的 wiki

參考資料 : https://wiki.archlinux.org/index.php/libvirt


//qemu 安裝

# pacman -S qemu

參考資料 : https://wiki.archlinux.org/index.php/QEMU


這樣就完成軟體部份的安裝了 arch 真是懶人的福音XD
其實這樣也就可以開 virt-manager 快樂的使用了
不過 這個前提是你不需要 host 和 guest 互連的情況下XD(ssh samba 之類都死亡)

單純只要測試 os 的話
網路設 macvtap 就可以了
除了 host 和 guest 互連的問題外 其它都正常工作
不過和其它虛擬機器軟體的連線是正常的
(測過和 vmware 的 dhcp + nat server 分享正常


//host 網路設定
因為要和 guest 的 win7 共享資料夾
所以要繼續設定 host 的網路部份

設定的方式有兩種 : netctl 和 systemd-networkd

首先以較簡單的 netctl 示範

# vi /etc/netctl/bridge-static
add
/*
Interface=br0 //設想要的名字
Connection=bridge
BindsToInterfaces=<Name> //設要使用的網路卡
IP=static
Address='192.168.*.*/24' //設想要的 ip
*/

# netctl enable bridge-static

設好後重開機比較好(比較不會跟舊設定衝突 記得把舊設定關掉
netctl 這樣就完工了XD


接下來是比較麻煩的 systemd-networkd

# vi /etc/systemd/network/10-bridge.netdev
add
/*
[NetDev]
Name=br0 //也是設想要的名字
Kind=bridge
MACAddress= //mac 不指定的話 它會自己生產
*/
# vi /etc/systemd/network/20-bridge-ethernet.network
add
/*
[Match]
Name=<Name> //設要使用的網路卡

[Network]
Bridge=br0 //要和上面 netdev 的名字相同
*/
# vi /etc/systemd/network/30-bridge-static.network
add
/*
[Match]
Name=br0 //也要和 netdev 的名字相同

[Network]
Address=192.168.*.*/24 //設想要的 ip
LinkLocalAddressing=no //沒在用 ipv6 所以關了它
*/

# systemctl enable systemd-networkd.service

弄好後一樣重開機 記得不能和 netctl 兩個同時使用

參考資料 :
bridge : https://wiki.archlinux.org/index.php/Network_bridge
netctl : https://wiki.archlinux.org/index.php/Netctl
systemd-networkd : https://wiki.archlinux.org/index.php/Systemd-networkd


//virt-manager 使用

gui 用起來和 vmware workstation 或 virtaulbox 其實差不多
就那個儲存池算是比較不一樣的地方
主要是拿來當 qemu 的前端來使用
畢竟還是有 gui 比較方便(vmws 和 vbox 用習慣的關係XD

建立新的虛擬機器 這邊要注意的地方有下列這幾個(沒特別提出來的都是用預設值

Network selection -> Specify shared device name
網路部份要選指定分享的設備名稱

Bridge name: -> br0
橋接名稱選剛剛上面示範的 br0

Customize configuration before install -> Checked
開始安裝前自訂組態這個要記得打勾(原因下面會說明

IDE Disk 1 -> Virtual Disk -> Advanced options -> Disk bus: -> VirtIO
NIC <MAC> -> Virtual Network Interface -> Device model: -> virtio
為了要有比較好的 i/o 效能
自訂組態裡面的這2個改成 virtio


//下載安裝 win7 時用的 driver
不過在開始安裝 win7 前 別急著開機 還有 driver 要下載

https://fedoraproject.org/wiki/Windows_Virtio_Drivers

在這邊下載 virtio 的 driver

link : https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

安裝 win7 的時候
會找不到硬碟 把這個 iso 掛戴到光碟機後
在 viostor 目錄下視 os 選擇 driver 即可
戴入 driver 後 記得把 win7 iso 掛戴回去 不然會不能裝(記得重新整理)
然後就等 win7 安裝完成就好


//裝好 win7 後 安裝一些設備的 driver 和 細部設定

就打開裝置管理員 把上面的 vritio iso 再掛載上去
找到有問號的設備 更新 driver 指向光碟機 它就會自動更新了

https://images.plurk.com/468aXgzywie2xS9lwUMQ.jpg

除了畫面裡這3個外 還有一個 qxl 的顯示卡 這4個


driver 裝好後
guest-agent 接著在這個目錄裡
裝 qemu guest agent(一樣在virtio iso裡)


接下來就可以快樂的使用 win7 直到你發現剪貼簿不能用XD(host 的東西貼不到 guest)
不過 這是小事

https://www.spice-space.org/
https://www.spice-space.org/download.html
在這邊下載 SPICE guest agent 並安裝

link : https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-0.100.exe

安裝時 它也會安裝 virtio 的相關 driver
不過它內附的比較舊 所以還是優先使用 virtio iso 附的
(也安裝沒關係 win7會優先使用先前安裝的

裝這個主要是要讓 剪貼簿能正常使用XD


//其它注意事項

剛開始用時 其實有遇到滑鼠遊標移動的問題(簡單說就是變兔鼠

https://images.plurk.com/3PYNIaxipYS2WhiHwUMQ.jpg

只要新增這個設備就好(或 qemu 參數加上 -usbdevice tablet

不過後來隨著 arch 升級 libvirt 相關套件後

這個似乎變成預設值了

參考資料 : https://wiki.archlinux.org/index.php/QEMU#Mouse_integration


結語:
目前按照這樣子安裝完使用上的感覺
其實速度還是比 vmws 慢了一點(vbox沒有安裝過 win7 不評論
其它用起來的感覺差不多

本來也想要用 efi 模式 可惜的是 ovmf 這個套件有點問題
裝完後 libvirt + qemu 還是沒 efi 能用
不過在 vmws 和 vbox 用 efi 也沒有很大差異的情況下
就不特別去弄這部份了(想玩的話 可以用 abs 去編 ovmf 這個套件

參考資料 : https://wiki.archlinux.org/index.php/libvirt#OVMF_-_QEMU_workaround

差不多就這樣XD 應該沒有漏掉什麼

--
Tags: Linux

All Comments

Quanna avatar
By Quanna
at 2016-12-29T02:34
Vanessa avatar
By Vanessa
at 2017-01-02T17:01
最近看下面這篇說硬碟設virtio-scsi更快,但驅動不同
Charlotte avatar
By Charlotte
at 2017-01-02T23:14
https://goo.gl/O4O87p 搜尋scsi
Hazel avatar
By Hazel
at 2017-01-06T14:16
arch在安裝套件之後還要手動改設定檔才能用,一時找
不到之前看到那篇x_x
Damian avatar
By Damian
at 2017-01-07T23:31
efi的部份嗎 wiki是寫用abs編ovmf後 還要去改qemu的conf
Caroline avatar
By Caroline
at 2017-01-10T06:54
virtio iso裡是有scsi driver 不過 我從ide改virtio
Caitlin avatar
By Caitlin
at 2017-01-10T16:00
就蠻有感 有機會的話再試scsi看看 雖然傳統硬碟應該這樣
就差不多極限了 改scsi可能要用ssd之類的比較有感
Dinah avatar
By Dinah
at 2017-01-11T18:21
補充 : 硬碟格式使用 qcow2(預設值)

為什麼符號連結會多一個inode&block?

Mary avatar
By Mary
at 2016-12-26T13:58
※ 引述《anoymouse (沒有暱稱)》之銘言: : 在看鳥哥關於硬式連結andamp;符號連結 : symbolic: : http://linux.vbird.org/linux_basic/0230filesystem/symbolic_link1.gif : 這樣跟硬式連結的圖只不過是一個指到另一 ...

Ubuntu套件升級

Delia avatar
By Delia
at 2016-12-26T09:40
我用Ubuntu 14.04 最近一直跳出software update的視窗 裡面有些項目我也不是很確定升級啥 所以一直不敢按 請問大家都會升級嗎? 我之前好像有一次就是升級顯卡driver之後 xwindow顯示又壞掉了 從此之後對升級這件事情都很謹慎 - ...

請各位前輩大神們提供學術軟體

Victoria avatar
By Victoria
at 2016-12-26T05:35
期末快到了 老師叫我們選擇一款ubuntu軟體報告 然而不可以和之前的學長們重復 我找了blender和imagej..結果發現都被報告過了 無奈只好找openbabel..結果發現似乎在linux沒有圖形介面...有點無言+無助 有沒有大神能提供一下..儘量好安裝(apt-get)..我不太會用源碼(雖然 ...

為什麼符號連結會多一個inode&block?

Liam avatar
By Liam
at 2016-12-25T15:57
在看鳥哥關於硬式連結andamp;符號連結 symbolic: http://linux.vbird.org/linux_basic/0230filesystem/symbolic_link1.gif 這樣跟硬式連結的圖只不過是一個指到另一個目錄inode一個直接指到檔案inode的差別啊 http:/ ...

dumpe2fs block group從一千多開始顯示?

Todd Johnson avatar
By Todd Johnson
at 2016-12-22T13:31
各位先進好,小弟新手最近在看鳥哥的基礎篇,提到一個指令可以看硬碟內容的詳細資料 dumpe2fs,可是每次顯示都是只顯示到最後幾十筆block group,前面都被覆蓋。 我用急速手速 ctrl+c 才勉強抓到前50筆group,請問要怎麼從第一行顯示? 謝謝 - ...