None, I use Docker for Linux, and Proton (Heroic) for Windows.
But if I had to pick a virtual machine: libvirt with virt-manager as a frontend, which uses KVM for virtualization.
From my other comment:
Then I created a Docker image with Linux, Gnome, and novnc so I can spin one up instantly with little resource overhead and control it from any web browser.
i will be trying that one out for sure. this looks awesome for a headless desktop.
I might actually be interested. It's like a lightweight alternative to Proxmox?
Sort of, Proxmox does use noVNC I think, but it's a lot of overhead. This is just a docker command. I've finally put a page up for it: https://nowsci.com/webbian/
I didn't understand that you ran it without hardware virtualization. This is really convenient, thanks a lot for making it!
I'm just learning about Docker and Containerfiles, so I wouldn't be opposed to a real world example...
Correct me I'd I'm wrong, but with docker you're limited to the filesyatems and the image of the OS you're installing. If you need to experiment with the pre-OS boot events, can that even be accomplished with docker? E.g., trying out different GRUB settings, setting up LUKS with dropbear etc. I think those things require a VM.
Yeah, you are correct. Docker shares the kernel with the host operating system, it doesn't use hardware virtualization. That's why it's so fast and simple, but it also means it's not a traditional VM and thus comes with some limitations.
GNOME Boxes because it doesn't require 5 academic degrees to set up and I'm a GNOME user.
Same.
The lack of graphics acceleration is a bit painful though.
VirtualBox won't work on Fedora 40 AFAICT, and once installed it can't be uninstalled.
It has graphics acceleration.
Yes afaik it should have it.
I'll have another look. Didn't seem to be an option to have it on a Windows guest when I installed it.
It also isn't entirely foss
I’m a GNOME user.
Gross
Grow up. People use different software to you. It's not the end of the world.
Besides, Gnome is great.
Real for me it was problematic it was barely customizable and tracker3 randomly broke most of my apps
Qemu/KVM and Virt Manager. I have three VMs that I pass my GPU to: a Hackintosh, a Windows 10, and and Windows 7.
I never found a way to share a Public folder with VirtManager though, I need to move files between host and guest. How would you go about it?
I go to the host folder I want to transfer files from and run ‘’’python3 -m http.server’’’. Then (I can’t remove if I use ‘’’ip a’’’ to find the IP address of the host or if I used mDNS), I use the guest web browser to download files.
And here I have just been using samba.
Install the quemu guest agent in the VM. For Linux and Windows you'll even be able to drag and drop.
I hope you air gap that Windows 7 VM
Do you have two GPUs or do you fully switch to the VM while passed through?
I have two GPUs - an RX 550 hooked to the monitors and 580 for VMs. Until recently, once the VM shut down, the 580 was able to return to Linux and be used again via PRIME - no reset bug. It randomly stopped working and I’ve tried to debug it to fix the problem to little avail.
I actually may have seen the same issue recently. Have you tried adding initcall_blacklist=simpledrm_platform_driver_init to your kernel launch params?
I’ll have to try that. What I have tried so far is running a different kernel version and making sure my driver blacklists are correct (I found that the GPU shouldn’t ever connect to snd_hda_intel. It briefly eas again, but after fixing it, I still had the problem.).
For me, I have intel integrated + amd discrete. When I tried to set DRI_PRIME to 0 it complained that 0 was invalid, when I set it to 2 it said it had to be less than the number of GPUs detected (2). After digging in I noticed my cards in /dev/dri/by-path were card1 card2 rather than 0 and 1 like everyone online said they should be. Searching for that I found a few threads like this one that mentioned simpledrm was enabled by default in 6.4.8, which apparently broke some kind of enumeration with amd GPUs. I don't really understand why, but setting that param made my cards number correctly, and prime selection works again.
Huh. My issue seems different, but I’ll still test that flag to see if it changes anything. My problem looks like the device doesn’t return to host after VM shutdown, possibly because of the reset bug (based on my observation of dmesg), which I hadn’t encountered after about a year of GPU passthrough VM usage.
Ahh, yeah if it's specifically when coming back from a VM, that sounds different. Maybe the vfio_pci driver isn't getting swapped back to the real one? I barely know how it works, I'm sure you've checked everything.
virtmanager as frontend for qemu/kvm. I tried the commandline but it's too annoying
KVM
(VMware is proprietary software)
I used KVM with virt-manager for a long time. Even ran a gaming VM with GPU pass-through.
Then I created a Docker image with Linux, Gnome, and novnc so I can spin one up instantly with little resource overhead and control it from any web browser.
control it from any
whuAT!?
KVM + Qemu + libvirt + virt-manager = ❤️
Usually VirtualBox. It's easy and free.
a rather odd choice given the alternatives
Besides VMWare it always seemed the easiest for me to quickly make a Windows VM or so. Everything else usually had more configuration steps. But that's been a while ago. There could very well have been easier tools available in the mean time. I never bothered to look.
I only ever used "permanent" virtualization once on my server. I think with Xen. But it didn't give me any benefits for my use case so I dropped it later on. Also probably at least ten years ago.
I agree ngl i prefer vmware more
Me three.
I use qemu, but with Quickemu 'cause I'm lazy lol.
Virtmanger-kvm-qemu
I use virt-manager, aka Virtual Machine Manager. Using this specifically because of the winapps for Linux repo has instructions on how to get Windows apps to run through the VM to be integrated in a Linux environment.
might try that tbh am gonna run razer software or apps that dont work on linux at all
and for games am gonna use my windows ssd
How "scriptable" is virt-manager?
My biggest issue with VirtualBox is that I have to install OSes as if I'm actually installing them. There aren't any images (at least that I'm aware of) that can run with a command, like deploying an EC2.
Virt-manager isn't super scriptable but the underlying libvirt can be controlled by virsh which is a shell interface to libvirt. You can use both at the same time, e.g. start and stop via virsh and access to gui container via virt-manager/virt-viewer.
Virtual manager isn't scriptable at all as it is just a GUI for libvirt. You are probably looking for qemu or virsh (libvirt)
I'm kinda lazy so when I need one, I just use Gnome Boxes and it's pretty easy to setup.
Gnome boxes.
Based on QEMU+KVM so it's quite robust. It works pretty well, plus it has various little features working out of the box that in some other software is a pain in the arse to configure.
Sticks out a bit on my system due to still being GTK3, but there is a GTK4 prototype out that usually works well.
E: downvoting anybody who says Gnome Boxes because you use a different virtual machine frontend is laughably pathetic lmao. Some people in the Linux community are such losers lol
Does it matter what front end it uses if the underlying environment is QEMU+KVM.
Upvote for tha above.
It doesn't work for all cases and it is annoying that you have to wait until creation to change CPU count.
Qemu+Kvm with virt-manager is my boy nowadays. But I'm not a heavy user of Vms, just experimented with this to build some Flatpak. But plan on trying out other distributions, just for science. It wasn't easy to figure out how to share a folder, and I could not get drag and drop or clipboard share to work. Still though, its faster than any other solution. I used VirtualBox in the past, which was easy to work with.
I use Proxmox for the machine that I use to download all of the Linux ISOs I want. You know, with a VPN, through BitTorrent. Linux ISOs.
Proxmox isn't really its own hypervisor. It combines a few common projects to make a OS. It is pretty much KVM with corosync for clustering.
With that being said it is a solid platform. Just keep in mind it is just standard Linux virtualization and for single nodes you can get the exact same setup easily on any Linux system.
Well, the exact same except for the frontend. It's arguably better than virt-manager imo. I wonder how hard it would be to get pve-manager running outside the OS.
You absolutely can. People have done Proxmox installs on Debian and unsupported architectures by building from source.
Thanks for the pointer. But since Proxmox supports both KVM and LXC virtualization, wouldn't that make it both type 1 and type 2?
Virt-Manager, even works remotely via SSH.
So far I’ve been fine with some Oracle Virtualbox and some using the VM Manager that was in my distro or maybe I downloaded it. It’s just called Virtual Machine Manager made by Red Hat. Libvirt.
Between those I’ve been able to do everything I have needed.
Linux: qemu
OpenBSD: vmm, qemu when vmm isn't good enough
Virt manager for qemu. I use docker and distrobox for Linux distros
I recently managed to use my windows partition (for dual boot) as a disk for a qemu. I don't use it but really cool trick anyways. Tutorial here
Also it's not very healthy for windows since it is not designed for constant hardware changes. But idc all my apps are installed on D: so I can just reinstall it without thinking about it much
I tried doing tbe same thing as you on my separate windows ssd gives me a error on bootup and qemu/kvm won't let me boot from my vendor usb I tried only putting the isos and windows cannot find the ssd and hiren just gets a error
Did you read the article I linked? They use RAID to create a virtual disk (similar to a loop device in this context)
It also taints the kernel with a useless module and doesn't really offer much in the way of features over plain old kvm qemu
Currently virt-manager on top of qemu/kvm on Debian 12. It was the easiest to get to emulate a TPM on my ancient hardware (9ish years old, but still powerful).
I'm learning enough about the backend that I'm hoping to get off the Redhat maintained software and only use the qemu cli, maybe write my own monitor with rust-vmm when I learn enough rust to do so.
xcp-ng. except now everything is just containers on atomic fedora because it seems to fit my laziness better and doesn't require updating multiple vm os's
Gnome Boxes 🥲
Because im avoiding to install anything to the kernel.
You should never install anything to the kernel if possible tbh.
You also could try virtual manager
It is all KVM so it is natively supported
VirtualBox (desktop for testing and development), KVM: libvirt, Proxmox (production stuff).
Just be mindful of guest addons. (The are not foss)
I tried using virt-manager+kvm to try some stuff out the other day but I failed to set-up some crucial things. Probably me being incompetent.
Not like virtualization is a big part of my life anyway. I just wanted to try some other distros and such without rebooting.
If I were to get serious about virtualization I'd need to build a new PC with a second GPU. Then I could stop dual-booting and do everything with VMs. But it'd only be worth it to get serious about learning how to virtualize stuff if I were to do that.
You can single pass through but it feels more like your using one os but if that's the case wouldn't dual booting be better
Raw qemu at the command line for the one I use on a daily basis (not recommended for the average user). VirtualBox if I need to spin something up quickly but don't expect to need to keep it past the current testing cycle.
Virtualbox is slow and the licensing for guest addons is nasty. It is proprietary of course and if a person in a company uses it unlicensed they will send the company a massive invoice.
I only need it for the very occasional testing of open-source software on Windows, using the precanned VM images provided by Microsoft (last I checked, they had none for qemu, or I would be using that instead). And if you're using software commercially, you'd better be damned sure you understand the licensing before setting up. A company of any size will have lawyers vetting that anyway.
In other words, I don't disagree with you, but those issues don't matter for my use case.
If I'm running another Linux distro that will be happy under the host kernel then I use LXD (or Incus) containers. Otherwise it's QEMU+KVM or occasionally Virtual Box.
I use LXD (or Incus) containers
I've been curious about those for a while, what are they about, are they somehow better than the usual Docker/Podman conatiners?
They run a full distro rather than the minimalist that Docker containers use. You can also use them to run gui apps but that needs a bit more work to configure. I run Google Chrome sandboxed this way.
Replied to others with this but realized you won't get those notifications. I finally got around to releasing this, which is Debian in your browser via Docker: https://nowsci.com/webbian
I'm using systemd-nspawn or Bubblewrap, depending on the scenario.
Those are container platforms not virtualization
Yep. I found I don't have much use for a full-blown VM, whereas there's plenty of argument for isolating my browser from ~/.ssh/id_*.
VMware, Virtualbox for OSes that hate VMware, and Qemu for emulating OSes that only run on obscure platforms.
None, I use Docker for Linux, and Proton (Heroic) for Windows.
But if I had to pick a virtual machine: libvirt with virt-manager as a frontend, which uses KVM for virtualization.
From my other comment:
Maybe I should release my Dockerfile.
i'm listening.
Finally got around to it: https://nowsci.com/webbian/
i will be trying that one out for sure. this looks awesome for a headless desktop.
I might actually be interested. It's like a lightweight alternative to Proxmox?
Sort of, Proxmox does use noVNC I think, but it's a lot of overhead. This is just a
docker
command. I've finally put a page up for it: https://nowsci.com/webbian/I didn't understand that you ran it without hardware virtualization. This is really convenient, thanks a lot for making it!
I'm just learning about Docker and Containerfiles, so I wouldn't be opposed to a real world example...
And the example finally exists: https://nowsci.com/webbian/
Neat! Gonna look over that!
Its fair bcs vmware workstation does not support gpu passthrough libvirt with virt-manager is the only way
Correct me I'd I'm wrong, but with docker you're limited to the filesyatems and the image of the OS you're installing. If you need to experiment with the pre-OS boot events, can that even be accomplished with docker? E.g., trying out different GRUB settings, setting up LUKS with dropbear etc. I think those things require a VM.
Yeah, you are correct. Docker shares the kernel with the host operating system, it doesn't use hardware virtualization. That's why it's so fast and simple, but it also means it's not a traditional VM and thus comes with some limitations.
Can virt-manager boot windows boxes?
Absolutely, it's also made way easier with quickemu, allows you to spin up a properly configured Windows VM with pretty much no effort
Yeah, though there's some commandline shenanigans to get a tpm shim set up if you want it for windows 11
I am planning for XP.
GNOME Boxes because it doesn't require 5 academic degrees to set up and I'm a GNOME user.
Same.
The lack of graphics acceleration is a bit painful though.
VirtualBox won't work on Fedora 40 AFAICT, and once installed it can't be uninstalled.
It has graphics acceleration.
Yes afaik it should have it.
I'll have another look. Didn't seem to be an option to have it on a Windows guest when I installed it.
It also isn't entirely foss
Gross
Grow up. People use different software to you. It's not the end of the world.
Besides, Gnome is great.
Real for me it was problematic it was barely customizable and tracker3 randomly broke most of my apps
Qemu/KVM and Virt Manager. I have three VMs that I pass my GPU to: a Hackintosh, a Windows 10, and and Windows 7.
I never found a way to share a Public folder with VirtManager though, I need to move files between host and guest. How would you go about it?
I go to the host folder I want to transfer files from and run ‘’’python3 -m http.server’’’. Then (I can’t remove if I use ‘’’ip a’’’ to find the IP address of the host or if I used mDNS), I use the guest web browser to download files.
And here I have just been using samba.
Install the quemu guest agent in the VM. For Linux and Windows you'll even be able to drag and drop.
I hope you air gap that Windows 7 VM
Do you have two GPUs or do you fully switch to the VM while passed through?
I have two GPUs - an RX 550 hooked to the monitors and 580 for VMs. Until recently, once the VM shut down, the 580 was able to return to Linux and be used again via PRIME - no reset bug. It randomly stopped working and I’ve tried to debug it to fix the problem to little avail.
I actually may have seen the same issue recently. Have you tried adding
initcall_blacklist=simpledrm_platform_driver_init
to your kernel launch params?I’ll have to try that. What I have tried so far is running a different kernel version and making sure my driver blacklists are correct (I found that the GPU shouldn’t ever connect to snd_hda_intel. It briefly eas again, but after fixing it, I still had the problem.).
For me, I have intel integrated + amd discrete. When I tried to set DRI_PRIME to 0 it complained that 0 was invalid, when I set it to 2 it said it had to be less than the number of GPUs detected (2). After digging in I noticed my cards in
/dev/dri/by-path
were card1 card2 rather than 0 and 1 like everyone online said they should be. Searching for that I found a few threads like this one that mentioned simpledrm was enabled by default in 6.4.8, which apparently broke some kind of enumeration with amd GPUs. I don't really understand why, but setting that param made my cards number correctly, and prime selection works again.Huh. My issue seems different, but I’ll still test that flag to see if it changes anything. My problem looks like the device doesn’t return to host after VM shutdown, possibly because of the reset bug (based on my observation of dmesg), which I hadn’t encountered after about a year of GPU passthrough VM usage.
Ahh, yeah if it's specifically when coming back from a VM, that sounds different. Maybe the vfio_pci driver isn't getting swapped back to the real one? I barely know how it works, I'm sure you've checked everything.
virtmanager as frontend for qemu/kvm. I tried the commandline but it's too annoying
KVM
(VMware is proprietary software)
I used KVM with
virt-manager
for a long time. Even ran a gaming VM with GPU pass-through.Then I created a Docker image with Linux, Gnome, and novnc so I can spin one up instantly with little resource overhead and control it from any web browser.
KVM + Qemu + libvirt + virt-manager = ❤️
Usually VirtualBox. It's easy and free.
a rather odd choice given the alternatives
Besides VMWare it always seemed the easiest for me to quickly make a Windows VM or so. Everything else usually had more configuration steps. But that's been a while ago. There could very well have been easier tools available in the mean time. I never bothered to look.
I only ever used "permanent" virtualization once on my server. I think with Xen. But it didn't give me any benefits for my use case so I dropped it later on. Also probably at least ten years ago.
I agree ngl i prefer vmware more
Me three.
I use qemu, but with Quickemu 'cause I'm lazy lol.
Virtmanger-kvm-qemu
I use virt-manager, aka Virtual Machine Manager. Using this specifically because of the winapps for Linux repo has instructions on how to get Windows apps to run through the VM to be integrated in a Linux environment.
might try that tbh am gonna run razer software or apps that dont work on linux at all and for games am gonna use my windows ssd
How "scriptable" is virt-manager?
My biggest issue with VirtualBox is that I have to install OSes as if I'm actually installing them. There aren't any images (at least that I'm aware of) that can run with a command, like deploying an EC2.
Virt-manager isn't super scriptable but the underlying libvirt can be controlled by virsh which is a shell interface to libvirt. You can use both at the same time, e.g. start and stop via virsh and access to gui container via virt-manager/virt-viewer.
Virtual manager isn't scriptable at all as it is just a GUI for libvirt. You are probably looking for qemu or virsh (libvirt)
I'm kinda lazy so when I need one, I just use Gnome Boxes and it's pretty easy to setup.
Gnome boxes.
Based on QEMU+KVM so it's quite robust. It works pretty well, plus it has various little features working out of the box that in some other software is a pain in the arse to configure.
Sticks out a bit on my system due to still being GTK3, but there is a GTK4 prototype out that usually works well.
E: downvoting anybody who says Gnome Boxes because you use a different virtual machine frontend is laughably pathetic lmao. Some people in the Linux community are such losers lol
Does it matter what front end it uses if the underlying environment is QEMU+KVM. Upvote for tha above.
It doesn't work for all cases and it is annoying that you have to wait until creation to change CPU count.
Qemu+Kvm with virt-manager is my boy nowadays. But I'm not a heavy user of Vms, just experimented with this to build some Flatpak. But plan on trying out other distributions, just for science. It wasn't easy to figure out how to share a folder, and I could not get drag and drop or clipboard share to work. Still though, its faster than any other solution. I used VirtualBox in the past, which was easy to work with.
Virtmanager and qemu/kvm
Proxmox seem powerfull
It's a Type1, not Type2
https://en.wikipedia.org/wiki/Hypervisor#Classification
I use Proxmox for the machine that I use to download all of the Linux ISOs I want. You know, with a VPN, through BitTorrent. Linux ISOs.
Proxmox isn't really its own hypervisor. It combines a few common projects to make a OS. It is pretty much KVM with corosync for clustering.
With that being said it is a solid platform. Just keep in mind it is just standard Linux virtualization and for single nodes you can get the exact same setup easily on any Linux system.
Well, the exact same except for the frontend. It's arguably better than virt-manager imo. I wonder how hard it would be to get pve-manager running outside the OS.
You absolutely can. People have done Proxmox installs on Debian and unsupported architectures by building from source.
Thanks for the pointer. But since Proxmox supports both KVM and LXC virtualization, wouldn't that make it both type 1 and type 2?
Virt-Manager, even works remotely via SSH.
So far I’ve been fine with some Oracle Virtualbox and some using the VM Manager that was in my distro or maybe I downloaded it. It’s just called Virtual Machine Manager made by Red Hat. Libvirt.
Between those I’ve been able to do everything I have needed.
Linux: qemu
OpenBSD: vmm, qemu when vmm isn't good enough
Virt manager for qemu. I use docker and distrobox for Linux distros
I recently managed to use my windows partition (for dual boot) as a disk for a qemu. I don't use it but really cool trick anyways. Tutorial here
Also it's not very healthy for windows since it is not designed for constant hardware changes. But idc all my apps are installed on D: so I can just reinstall it without thinking about it much
I tried doing tbe same thing as you on my separate windows ssd gives me a error on bootup and qemu/kvm won't let me boot from my vendor usb I tried only putting the isos and windows cannot find the ssd and hiren just gets a error
Did you read the article I linked? They use RAID to create a virtual disk (similar to a loop device in this context)
ohh i seen some parts of the article
@Mwa qemu :blobfoxcomfycomputer:
Virtualbox
Owned by Oracle. Stay away from Oracle.
It also taints the kernel with a useless module and doesn't really offer much in the way of features over plain old kvm qemu
Currently virt-manager on top of qemu/kvm on Debian 12. It was the easiest to get to emulate a TPM on my ancient hardware (9ish years old, but still powerful).
I'm learning enough about the backend that I'm hoping to get off the Redhat maintained software and only use the qemu cli, maybe write my own monitor with rust-vmm when I learn enough rust to do so.
xcp-ng. except now everything is just containers on atomic fedora because it seems to fit my laziness better and doesn't require updating multiple vm os's
Gnome Boxes 🥲 Because im avoiding to install anything to the kernel.
You're using qemu+kvm.
https://help.gnome.org/users/gnome-boxes/stable/supported-protocols.html.en
You should never install anything to the kernel if possible tbh.
You also could try virtual manager
It is all KVM so it is natively supported
VirtualBox (desktop for testing and development), KVM: libvirt, Proxmox (production stuff).
Just be mindful of guest addons. (The are not foss)
I tried using virt-manager+kvm to try some stuff out the other day but I failed to set-up some crucial things. Probably me being incompetent.
Not like virtualization is a big part of my life anyway. I just wanted to try some other distros and such without rebooting.
If I were to get serious about virtualization I'd need to build a new PC with a second GPU. Then I could stop dual-booting and do everything with VMs. But it'd only be worth it to get serious about learning how to virtualize stuff if I were to do that.
You can single pass through but it feels more like your using one os but if that's the case wouldn't dual booting be better
Raw qemu at the command line for the one I use on a daily basis (not recommended for the average user). VirtualBox if I need to spin something up quickly but don't expect to need to keep it past the current testing cycle.
Virtualbox is slow and the licensing for guest addons is nasty. It is proprietary of course and if a person in a company uses it unlicensed they will send the company a massive invoice.
I only need it for the very occasional testing of open-source software on Windows, using the precanned VM images provided by Microsoft (last I checked, they had none for qemu, or I would be using that instead). And if you're using software commercially, you'd better be damned sure you understand the licensing before setting up. A company of any size will have lawyers vetting that anyway.
In other words, I don't disagree with you, but those issues don't matter for my use case.
If I'm running another Linux distro that will be happy under the host kernel then I use LXD (or Incus) containers. Otherwise it's QEMU+KVM or occasionally Virtual Box.
I've been curious about those for a while, what are they about, are they somehow better than the usual Docker/Podman conatiners?
They run a full distro rather than the minimalist that Docker containers use. You can also use them to run gui apps but that needs a bit more work to configure. I run Google Chrome sandboxed this way.
Replied to others with this but realized you won't get those notifications. I finally got around to releasing this, which is Debian in your browser via Docker: https://nowsci.com/webbian
I'm using systemd-nspawn or Bubblewrap, depending on the scenario.
Those are container platforms not virtualization
Yep. I found I don't have much use for a full-blown VM, whereas there's plenty of argument for isolating my browser from ~/.ssh/id_*.
VMware, Virtualbox for OSes that hate VMware, and Qemu for emulating OSes that only run on obscure platforms.