KVM/QEMU for WSL

前言

WSL現在可以透過nestvirtualize當作直通跑Hypervisor,所以可以無限套娃?

參考資料

Host Setting

Update WSL

1
wsl --update

WSL Setting

WSL.config

C:\Users\<User>\.wslconfig或是WSL內的/etc/wsl.conf加上以下這段

1
2
[wsl2]
nestedVirtualization=true

然後透過在Powershell內的wsl --shuutdown重開WSL

Archlinux安裝QEMU/KVM與Virt Manger

安裝需要的Package

基本Package

1
sudo pacman -S archlinux-keyring qemu-full virt-manager virt-viewer edk2-ovmf dnsmasq vde2 bridge-utils openbsd-netcat libguestfs ebtables iptables virglrenderer

TPM2.0模擬的Package

1
sudo pacman -S swtpm

啟動服務

1
2
3
sudo systemctl enable --now libvirtd
sudo virsh net-start default
sudo virsh net-autostart default

調整權限

加入群組

1
2
3
4
sudo usermod -a -G libvirt $USER
sudo usermod -a -G libvirt root
sudo usermod -a -G kvm $USER
sudo usermod -a -G kvm root

變更權限

編輯/etc/polkit-1/rules.d/50-libvirt.rules

1
2
3
4
5
6
7
/* Allow users in kvm group to manage the libvirt daemon without authentication */
polkit.addRule(function(action, subject) {
if (action.id == "org.libvirt.unix.manage" &&
subject.isInGroup("kvm")) {
return polkit.Result.YES;
}
});

都改完後就重開服務

1
sudo systemctl restart libvirtd

Archlinux Guest

類似VM-tools的東西

Gest OS需要安裝以下

1
2
3
sudo pacman-S pice-vdagent qemu-guest-agent xf86-video-qxl
# X-resize是AUR的所以要用yay安裝
yay -S x-resize

雖然網路上的教程都還需要enable service但是我發現我的系統不僅不需要,連想要enable都不找不到service檔案…

加掛shared folder

首先是需要回到Guest設定,對就是視窗界面中左上電腦旁的燈泡(需要把guest關機)
進去後點下面的add hardware,加入file system如下圖

之後看你是要手動加掛還是寫進/etcfstab都行

手動

1
sudo mount -t virtiofs host /home/kiwi/host

/etc/fstab

1
2
3
4
#加上下面

# Shared Folder with HOST
host /home/kiwi/host virtiofs rw,noatime,_netdev 0 2