Hi, I'm an old windows user who have played with linux* a few times, but never commited to it.
I want to dive deeper and I though about installing linux in a VM. Some basic questions:
- Is that a good idea? / Anything I should take into account?
- Is there any preferred VM manager for this? Windows comes with Hyper-V, but I remember reading about how Hyper-V is not ideal (I could be wrong).
- Do different distributions work better or worse on VMs?
- Are there any major differences when using linux in a VM compared to a bare metal installation?
And some not-so-basic ones:
- Is there any [dis]advantage to "Linux VM on Windows" VS "Windows VM on Linux"?
- If I start with "Linux VM on Windows", would it be possible to swap them in the future? What I mean is:
- Virtualize the Windows installation so it can be run as a VM.
- Un-virtualize the Linux VM (with all its contents and configuration) and move it to bare metal.
- Run Windows VM on linux.
Notes:
- I did a quick search and, although I found multiple articles about the topic, the ones I've read just show one way to do it without comparing it to the alternatives.
- I'm aware of WSL(2), but I would like to be able to decouple from Windows in the future.
- EIDT: I tried dual booting in the past. The main problem is that I'm too lazy to reboot every time I want to try something in linux and I end up not using it.
Thanks!
* Mandatory linux = GNU/Linux
I don't know a distribution which work better on VM but for an old Windows user, I recommand Linux Mint. Close to windows GUI and really easy to use!
Is this a good idea?
Sure!
any preferred VM manager
I like Virtualbox.
- Do different distributions work better or worse?
Depending on your specs, you may want to go lighter than you would on bare metal. For example, if you have 16 GB of RAM, you might want to only give your VM 4 GB of RAM so Windows can run on 12 GB, and then pick a lighter distro so it won’t be slow on 4 GB.
Any major differences?
Snapshots are way easier in a VM.
Advantage/disadvantage
Windows VM on linux is painfully slow and doesn’t have a license, so it’s much less good than linux VM on Windows IMO.
Would it be possible to swap?
Not as far as I’m aware, but smarter people than me have probably done it.
Windows vm on a Linux box is not painfully slow. It's about the same as native, where did you get this idea?
Depending on your specs, you may want to go lighter (...)
Good point regarding balancing hardware resources.
Windows VM on linux is painfully slow and doesn’t have a license, so it’s much less good than linux VM on Windows IMO.
Good to know.
Thanks!
Short answer: go ahead and install whichever Linux distro you like on Hyper-V and go from there.
Longer answers:
Linux works fine on VMs. There aren't really any caveats. Hyper-V should be fine. It's been a while since I used it but I remember thinking it was OK. I preferred it to Virtualbox; I think the Virtualbox drivers made some stuff flaky on my machine, but YMMV. I ended up shelling out for VMWare which I'd used at work. Some distros offer cloud images that are tailored for running as VMs, but unless you're running a cluster with a lot of VMs I don't think there's any advantage, any distro will work. There aren't any significant differences running Linux on a VM from running it on a physical machine.
As to which OS to use for a host, the commonly understood strengths & weaknesses of each OS apply the same as they do in other domains. Windows has better desktop hardware support, Linux tends to be more power-user friendly, etc. It depends on your priorities which you choose. Maybe the biggest factor is that Windows has Hyper-V, whereas Linux has Xen, KVM, and qemu. Either platform can use Virtualbox or VMWare.
P2V and V2P are definitely things. Searching for them online will return tools that will do this. Linux should be rather straightforward to transfer even without a specialized tool, assuming you aren't using a distro (or distro variant) that is specially built for VMs.
dd
should work like a charm. It should be possible to do invert the host and guest.If that sounds like a whole lot of nothing it's because that's kind of the way it is with VMs. They just work.
Vmware workstation player is extremely good. Setup is simple and as far as I know it is faster than VirtualBox. I use it with Windows 10/11 and RHEL Linux for developers.
I tried dual booting, and I found it to be annoying as well. I always had to reboot because something I needed was on the other OS. Over a few weeks Linux was just taking space on the drive.
More recently what I've been doing was to run Linux in a VM that starts automatically on full screen when opening my Windows session (easy to set up). So now I can work with both in parallel, transfer data, synchronise clipboard with Ditto, have my Windows-specific software while still using Linux as my daily OS. Even better now since I have a NAS which I didn't have during the dual boot period, so I can mount drives for both. For that you can either use VMWare Workstation Player or Oracle VirtualBox, they're both free.
When it comes to swap, of course you will be able to run Windows in a VM on Linux. But transfering your current data ? I'm not sure at all. It might be doable, but I think you should save your data externally for both machines and do a proper reinstall. It will save you some time and hassle.
Thanks for the answer!
May I ask you how do you balance resources (mainly RAM) between Windows and Linux?
Well that's my main issue, my rig runs an i5-6900 and I have 16GB RAM. I gave 6 to the Linux VM, and try to maintain the usage on Windows as low as possible : not having the browser running on both, a plug-in to put to sleep tabs not used, stopping processes I'm not using. KDE is a bit too much in my case, but Cinnamon, or XFCE are working fine. I've found a new love with i3wm but it needs some time to tinker it to your taste.
But if you have a more recent computer, you should be fine. Upgrade the RAM maybe, if you find it to slow.