by Swapnil Bhartiya

Why you need a virtual machine

Dec 14, 2015
LinuxOpen SourceVirtualization

Say goodbye to bare metal and go virtual...

I am a distro hopper. This is partly because, as a tech journalist, I need to keep an eye on all distributions. And partly because I’m the type of Linux user who is always looking for what’s new.

There was a time when I would have multiple partitions on my machine to install different distributions. And I assume many Linux users still do that.

Back in the old days installing a distro on a physical machine made sense because there were issues around drivers. Many hardware components like wireless, bluetooth or GPU (graphs processing unit or graphic cards) wouldn’t work. So it was a reviewer’s responsibility to check for such compatibility issues and warn users. Things have changed. Thanks to the work done by kernel developers like Greg Kroah-Hartman, almost everything now works out of the box.

As a result, running a Linux distro on a physical machine isn’t needed anymore.

There are two clear advantages of virtual machines: 1) You can install multiple distributions on the same system and use them simultaneously. 2) Your work won’t be interrupted while you install new distros. (One of the downsides of installing an OS on bare metal is you can’t use the system during installation, and if something goes wrong you have to spend time in fixing it before you’ll have a working machine.)

Plus, it’s very quick to spin up new virtual machines. And once you are done testing, just delete them. No need to fiddle with bootloader and stuff.

There are many other advantages of using virtual machines: You can run Windows in Linux to perform those tasks that can only be performed on Windows. It also offers a safer environment to do unsafe stuff. If something gets corrupted only that virtual machine will be compromised, leaving your main system untouched.

Virtual machines are heaven for testers. If you who want to test bleeding edge software or distributions, it’s not worth risking your data and main system. Almost by definition, bleeding edge software will eventually break. It’s better to always run such operating systems and applications in a virtual environment.

Virtual machines are also very useful if you want to learn about Linux. Let’s say you want to master Fedora, CentOS, openSUSE, Debian…. it would be very counterproductive to set up a multi-boot system and boot into each system individually. Instead, install headless distros on a virtual machine and then ssh into those systems and learn to manage the entire system over ssh.

It’s also great for us reviewers as we can take screenshots and record videos of the stages prior to boot.

All that said, virtual machines do have some notable limitations.

Depending on the virtual machine software you are using you will have to allocate a certain amount of system resources — RAM and CPU — to that virtual machine. So the guest OS (the one running inside the VM) won’t have access to real or complete hardware. It’s also not possible to run high-end games or film editing software that may need full access to CPU, GPU and RAM for optimal performance.

You also need decent RAM (I have 32 GB) for running multiple distributions as well as a powerful CPU. However, it’s much cheaper and more efficient to buy more RAM than to build a new system for different distributions. 


If you are a distro hopper, or if you are someone who needs more than one operating system at any given time, give virtual machines a try. It’s better than dual booting.

There are many virtual machines available: VirtualBox, VMWare Player, KVM, and QEMU, among others. For beginners I suggest Virtualbox because it’s easy to use and it’s available for Linux, Windows and Mac OS X.