libvirt + qemu - Linux

By Andrew
at 2016-12-27T10:43
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 應該沒有漏掉什麼
--
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

By Quanna
at 2016-12-29T02:34
at 2016-12-29T02:34

By Vanessa
at 2017-01-02T17:01
at 2017-01-02T17:01

By Charlotte
at 2017-01-02T23:14
at 2017-01-02T23:14

By Hazel
at 2017-01-06T14:16
at 2017-01-06T14:16

By Damian
at 2017-01-07T23:31
at 2017-01-07T23:31

By Caroline
at 2017-01-10T06:54
at 2017-01-10T06:54

By Caitlin
at 2017-01-10T16:00
at 2017-01-10T16:00

By Dinah
at 2017-01-11T18:21
at 2017-01-11T18:21
Related Posts
為什麼符號連結會多一個inode&block?

By Mary
at 2016-12-26T13:58
at 2016-12-26T13:58
Ubuntu套件升級

By Delia
at 2016-12-26T09:40
at 2016-12-26T09:40
請各位前輩大神們提供學術軟體

By Victoria
at 2016-12-26T05:35
at 2016-12-26T05:35
為什麼符號連結會多一個inode&block?

By Liam
at 2016-12-25T15:57
at 2016-12-25T15:57
dumpe2fs block group從一千多開始顯示?

By Todd Johnson
at 2016-12-22T13:31
at 2016-12-22T13:31