VirtualBox is ridiculously simple to set up and get virtual machines going. Shared folders, shared clipboard and much more are no issue.
But.
It eats resources. The installed virtual machines (VM) run relatively slow. What have you found to be feature comparable - and most importantly more resource-efficient - alternatives for running VMs under Linux?
Under Linux, the recommended route is KVM/Qemu, with Virt-Manager as the GUI front-end for them. You will need to follow tutorials to install it correctly, as it requires special steps, e.g. adding them to specific usergroups. But once it works, it works well.
definitely not as easy as virtualbox
Yea, the installation isn’t too difficult. Looking at my groups as well I think it’s only the
libvirt
group that you have to add a user to for KVM/QEMU with Virt-Manager, but the same could be said for VirtualBox as I believe you have to still add the user to thevboxusers
group if you were to install it instead.Not for the faint of heart, but I’ll keep it in mind.
https://virt-manager.org/ is a no brainer. Built upon libvirt/Qemu/KVM it’s way more powerful and pretty much just as easy to use. There is zero reasons to use anything else.
How easy is it to convert a VirtualBox machine+hdd to Virt Manager?
Pretty damn easy.
qemu-img convert -f vdi -O qcow2 Windows10.vdi Windows10.qcow2
Here’s a more complete guide: https://cubiclenate.com/2024/05/30/converting-vdi-to-qcow2-step-by-step-guide-for-virt-manager-migration/
As jet points out, QEMU for actual hardware virtualisation.
There is one relevant thing, which is not exactly in the same category, but does somewhat similar thing:
containers
most popular example being Docker
https://en.wikipedia.org/wiki/Containerization_(computing)
containers don’t emulate whole hardware stack like virtual machines do, they just run the guest OS on top of host OS.
so because they don’t put resources towards emulating hardware, they are much more resource efficient.
so if your problem is “I’m running Fedora but I want to run something that for some reason runs just on Ubuntu”, then you could use containers for that.
containers are mostly used in headless environments (as in servers, no GUI), so running and displaying desktop Linux inside them is a bit tricky, but it can be done.I’ve been using https://containertoolbx.org/ recently to manage my “other distro” requirements. It doesn’t do anything special but works nicely as a wrapper around podman and does all the bind mounts and uid mappings so you can just enter your $HOME as though you have set up your account in a new OS.
for running GUI app, I use flatpak which is a sort of a container / sandbox
Virtualbox should not run slowly in terms of compute. Make sure your allocating enough cores and memory, and VT/AMD-V is enabled in the BIOS of the host. Also Guest additions should be installed. Not sure but that might help IO speeds.
What might be slow, Graphics may not be acceralerated. Exactly what VM software to use, what it works with, and actually getting it to work can be challanging. Installing guest drivers though is probably required.
For Linux KVM solutions are probably preferred and more native solution but more technical to use. Getting graphics acceleration with KVM has been challenging, though may be possible. KVM is used widely on servers, but is not that desktop friendly.
All VM solutions are resource intensive. Use containers and/or native software to reduce/avoid that.
Edit: I myself have used VirtualBox but these days I use KVM including on my workstation.
Definitely if you’re on Linux, use Qemu (and the best is to install a GUI to use it after)
I use Quickemu for mine, makes it really quick and easy to get a new system up and running.
Using virt-manager, never tried quickemu
I’ve looked at it. It comes up a lot. Thank you.
Did you use virt-manager with it?
Really wish we could get in the habit of recommending GUIs first, not last.
Without any kind of software behind GUI this is almost useless and I think that CLI (or even TUI) are today so underrated that we should give more and more power to them instead of GUI
Really wish we wouldn’t have to separate the two. This adds a complication layer for exiting Windows users.
Ideally: install app (insert name). Run and enjoy.
I haven’t used it nearly as much as VirtualBox but Boxes (flatpak) is definitely a breeze to use. It uses KVM under the hood I think. If your use cases are complicated it might abstract away too much though.
You can also run VirtualBox with KVM as a backend.
This has been mentioned a few times here. Didn’t know that. Thank you.
Especially on Linux, libvirt/qemu on kvm is a no-brainer. It works, it’s fast, the setup is practically effortless
Qemu/Kvm or VMware(Sadly only works on some distros and vmware works best with Windows)
You can specify the virtualization engine in VirtualBox, including KVM.
A couple of easy virtualization tools that allow you to create VMs in a few clicks are Gnome Boxes and QuickEmu, which leverages Qemu and KVM
Good tip. Thanks.
I’ve been using Virt-Manager with KVM/Qemu and don’t have any complaints.
Might be that you really don’t need VMs but just lightweight namespace containers. If so, you can use docker/podman, systemd-nspawn or various other tools. The overhead will be less than 1% if you stay within the same architecture as your host.
VMware workstation is free, it’s not open source but it’s faster than VirtualBox, if you want GPU passthrough KVM is the only choice but require quite bit of effort to setup
Surprised no one is saying Xen
This “Beginners Guide” they have there is a serious turnoff. They might want to consider a more lightweight and friendly intro to their software. 😄
Still, if I find the time to go through this massive wall of text, I will.
To be clear, I don’t recommend it. But it was once favored over KVM for a variety of applications and it works in a fundamentally different way. I’m just surprised how quickly it’s lost favor among techies.
Qemu