Last edited: May 31, 2020
I’ve written several tutorials on “how to make dual-boot obsolete using VGA passthrough“, yet one may ask why run Windows on Linux? Most PC or laptop come pre-installed with Windows, in fact its rare to see computers pre-installed with Linux. So why not just leave Windows and install Linux in a virtual machine (VM), for example using Oracle VirtualBox?
Installing Linux in a VirtualBox VM is definitely a lot easier than following my tutorials on VGA passthrough (VFIO). Not only that, most computer users who want or need to use both Windows and Linux will find that this simple solution is all they need.
Take for example my own use-case: I use Linux for everything except photo editing and retouching, where I use Windows-based software. But none of my Linux applications require 3D graphics or the like, which means that running Linux inside a VirtualBox VM would be perfectly sufficient for email, web, document editing, and the usual office tasks.
If you are a gamer, there are even less reasons to replace Windows as the prime operating system. So why would one want to switch the good and tested Windows operating system with an open source Linux OS, just to install Windows in a Virtual Machine with its own dedicated graphics card? Isn’t that short of insane?
I let you be the judge of whether I am insane or not. There is this Youtube tutorial of SomeOrdinaryGamers where Muta makes some very convincing points. Below are my reasons for installing Linux on bare metal and running Windows as a VM when needed (as always, your mileage may vary):
- Linux has become my primary operating system for the last 18 or so years. Over these years I have found Linux to be very reliable and also robust to malware and attacks from the Internet. In contrast, I have had some bad experiences with Microsoft Windows that include several viruses, one of which wasn’t caught by the anti-virus software that was installed and which rendered my work laptop unusable (I used Linux privately, whereas Microsoft Windows was the standard OS at work). But the worst experience was “upgrading” my wife’s PC from Windows 98 to Windows 2000 – Microsoft had managed to render the hard drive unreadable by dropping support for HDD compression. This was a deliberate decision by Microsoft which led to data loss, and this is absolutely inexcusable!
- Windows 10 – the latest Windows non-server OS – uses NTFS as its default file system, which was first introduced with Windows NT 3.1 in the year 1993. NTFS has since seen several upgrades, but until today it suffers from performance degradation over time. As a remedy, Windows 10 – like many predecessors – includes a defragmentation utility. Microsoft is now also offering ReFS, its latest and greatest file system. ReFS is supposed to overcome the limitations of NTFS, but – funny enough – Windows 10 still can’t boot from ReFS.
In contrast, the Linux ext4 file system – introduced first in the year 2000 – does not suffer from performance degradation and is considered very robust. I have been using ext3 and ext4 for many years now and have neither experienced read/write performance issues nor data loss.
If I were to run Linux as a VirtualBox VM on Windows, the Linux image file would most likely be stored on a NTFS partition. I could select a separate drive/volume using ReFS, but I have no experience nor enough data / user reports to justify such a move. In short, I consider putting my faith into the Microsoft Windows 10 file system(s) a gamble, at best.
- Given the need or wish to run two operating systems, the question is which of the two is the more reliable and trusted one? I have presented two observations above. It is my opinion that the most reliable/secure/trusted operating system should control the hardware, that is, should be installed onto a “bare metal” PC. The other OS – installed in a VM – will have some limited direct access to hardware, but we are in control of that access.
On the contrary, if the less reliable/secure OS was installed as host OS, the guest OS would be exposed – directly or indirectly – to the same reliability and security issues that the host suffers.
Consider this: The host is attacked by a virus/malware – for example the WannaCry ransomware – that renders it unusable. 3 guesses where that leaves your VM guest – at best you could copy/port it to a new PC.
Or consider this: The host OS experiences performance degradation over time. Most likely the guest VM will experience the same degradation if it uses the underlying host file system.
Linux combined with qcow image files for the VM, or LVM logical volumes, has provided me with a reliable host OS that can support the Windows VM without any performance degradation over years. I have been running Windows as a virtual machine on a Linux host over the past 8 years, with exceptionally good Windows VM performance. In this time, I experienced zero data loss. Only once did I have an issue with Linux using Xen as the host platform, when after an upgrade I couldn’t start the Windows VM. It took less than 5 minutes to downgrade to the previous Xen version and the problem was rectified. Some later releases of Xen solved the issue altogether. Now I’m using kvm and I yet have to run into such a problem.
- Linux provides a wealth of administrative tools free of charge, for example easy and robust backup utilities. I run regular local backups onto a special LVM volume on separate disks using my own shell scripts, as well as remote backups to my Linux server.
Sure there are similar solutions under Windows, but as far as I know we are talking commercial software that would require me to spend extra money. Don’t get me wrong, I’m no cheapskate and I will happily pay for good software. But it turns out that Linux has efficient and reliable options such as luckyBackup (my choice) for both local and remote backups.
Using my own backup/restore scripts, I can backup a 120GB Windows VM to a compressed file within 10 minutes, and restore it in even less time. I keep several backups of my Windows VM, including a “golden copy” taken from a fresh Windows installation, together with the software I use. If anything goes wrong with Windows, I’ll be up and running within minutes.
- Linux is open source software, whereas Microsoft Windows is closed source – you and I won’t know what we get. In practice, Linux security vulnerabilities are usually fixed quickly, depending on the distribution (server distributions are more likely to see quick fixes). However, with closed source software we often won’t learn about security vulnerabilities, and we need to rely on the vendor alone to fix them in a timely manner.
Linux is used in a vast number of servers – web servers, storage, cloud, etc. Big Linux customers have their own security teams that check for vulnerabilities. Linux being open source makes that a lot easier.
I am absolutely convinced that open source software is inherently better and more reliable/secure than closed source software. How often have we read about back-door access or other security breaches that have been discovered but not fixed until all hell broke loose? With open source software we know exactly what we get, and everybody with some software skills can improve on it – which is what actually happens with Linux and Linux software.
This and the fact that I can actually communicate with the developers (and trust me I did) is an advantage that one should not underestimate.
All that said, if Microsoft and other closed source software companies were to replace their EULA (end user license agreement) to provide a warranty for the software and were to agree to financial compensation for data loss or downtime due to product faults, I could change my mind in an instance.
- VGA passthrough is all about performance – both Xen and kvm have done an excellent job in making virtualization with minimal performance loss possible. This solution works exceptionally well, and I literally can’t tell the difference of running Windows natively or as a VM. The benchmarks I provided support this finding.
I’m not sure I would get similar performance of Linux on Windows. VMware – a commercial solution – does supposedly provide VGA passthrough. The last time I tested VirtualBox it didn’t support VGA passthrough, though it supports now 3D acceleration for Linux Ubuntu guests.
- Running Windows as a VM on a Linux host using VGA passthrough makes dual-boot obsolete. Now I can enjoy both worlds – Linux with its wide range of excellent open source packages, and Windows with all its commercial software – and switch between them at a press of a button. This was the real achievement for me.
- With recent Windows 10 updates (1903 and 1909) Microsoft is trying to enforce you to sign up to their Microsoft account (“One account for all things Microsoft”) when installing Windows. They couldn’t have found a better slogan, because from that point on everything belongs to Microsoft – your PC password and potentially all data on your drives. In essence this means that Microsoft holds the key to your PC. Even if Microsoft and other associated companies and agencies have only the best intend, what makes you believe that some hacker won’t hack their servers? They could retrieve millions of passwords, including yours, and guess what they might do?
- Almost every Microsoft Windows update adds additional spyware on your PC. Don’t believe me? Some open source advocates call Microsoft software malware. But even mainstay media like Computerworld or Networkworld warn of Microsoft spying on you. While you may be able to minimize the spying, I wouldn’t entrust passwords for bank accounts or other truly sensitive information to be used or stored anywhere on the Windows 10 operating system. With a Linux host and a Windows VM, the Windows VM is encapsulated and doesn’t have direct access to your host data.
In the end it will be you to decide which solution fits best to your needs.