From my experience, VirtualBox requires some kernel modification, I think it usually prompts you to install a virtual-box header that corresponds to your kernel version, or virtualbox-host-dkms to build your kernel with its module.
I prefer virt-manager because it doesn’t need that, and it just works better for me. This is where I learned how to create a Windows virtual machine in KVM correctly: winapps/KVM.md at main · Fmstrat/winapps · GitHub (spice-guest-tools is also included in the virtio-win.iso image, so just open the mounted cd image once you’re done installing Windows)
It covers everything up to having the guest OS running. If you don’t want the hassle, you can use quickemu with quickgui. I personally prefer virt-manager’s UI, so I don’t use it often.
That said, the guide is part of a guide to be able to use your VM’s apps seamlessly from your Linux host. It’s pretty useful if you need to use Office or Chrome on Windows or something.
A gotcha I found though is that using Virtio for video makes the guest won’t resize to VM window size, which isn’t a big deal with winapps but if it bugs you then you can just use QXL video.
It doesn’t cover file-sharing between machines though. For that, I’d recommend using samba with either
system-config-samba for easy settings.
If you want to follow link, then you need to add in the /etc/samba/smb.conf:
follow symlinks = yes
wide links = yes
unix extensions = no
And if you want to execute stuff you have to add:
acl allow execute always = True
Also, if you want Windows guest to be able to automatically discover your Samba share, you have to have either wsdd or wsdd2 running (just
sudo systemctl enable --now wsdd or wsdd2).