posted by Howard Fosdick on Thu 3rd Feb 2011 22:25 UTC
IconIn this series of OS News articles, I've described how to refurbish mature computers. One useful technique is to run multiple operating systems on a single computer. This retains the benefits of the existing Windows install and couples it with the advantages of open source software. This article explores different techniques to run multiple operating systems on one computer and discusses their benefits and shortcomings.


Running multiple operating systems on one computer couples the strengths and capabilities of those OS's while requiring that you only buy one computer. Who hasn't been running one OS and wished that they could run a program that only runs under another? Who hasn't experienced an OS problem and wished they could boot into another system to resolve it?

In computer refurbishing, running multiple OS's allows you to combine the strengths of an existing Windows install with those of open source. Case in point: Windows XP is aging but still has active forums, tons of how-to websites, great ease-of-use, thousands of applications, and drivers for every device. Keeping it retains the original software license, the installed applications, and the existing drivers. (Past articles have described how to secure and performance tune mature Windows systems.)

Add a Linux distribution and you gain all the benefits of open source software -- a free and currently supported operating system, a state-of-the-art OS that runs on older hardware than Windows 7 or Vista, security without anti-malware overhead, and tons of free applications. A well-chosen distro greatly expands the capabilities of an aging Windows computer.

Here are the ways to run multiple operating systems on a single system ...

Live CDs and Live DVDs

Live CDs and Live DVDs allow you to easily boot and run alternate operating systems. Just download a bootable OS image, burn it to disk, set your computer to boot from the optical disc drive, and you're off and running.

One big benefit to Live CDs is that you're guaranteed a malware-free OS. Some experts now recommend against doing your banking and finances online, or they say you should not use Windows if you do. Live CDs offer higher security for online banking. Every time you boot from the Live CD you initialize a fresh uncontaminated system, because the read-only disc can not be altered by malware. (Of course the original Live CD has to be virus-free but I have yet to hear of such contamination.)

You don't have to alter anything on your existing hard disks to run a Live CD. No fiddling with partitions. You don't even have to mount your internal disk. Live CDs are a risk-free way to try out and play with as many different OS's as you're willing to burn CDs for.

Whether you'll be happy with the performance of running an OS from CD or DVD depends on the speed of your optical drive and the OS you run. Most people are satisfied using current optical drives, even for full-sized Linux distributions that continually access the disc while running. If you're refurbishing an old computer and frequently run live CDs, check the speed of your optical drive and get a newer one if you need to. Drive speed has dramatically increased over the past decade.

Another trick is to use a distro that runs entirely from memory and never accesses the CD/DVD or hard disk after booting. Puppy Linux, for example, runs entirely in memory on systems having just 256 M or more. It performs well even on older computers. After booting you can use the CD drive for purposes other than running the OS. The only small drawback is the startup time it takes for the CD or DVD to initially load the OS into memory.

Live USBs

Live USBs are a variant on the Live CD/DVD concept. In this case you use a USB memory stick, flash drive, or USB external disk drive to boot and run the operating system.

Like live CD and DVDs, live USBs are portable. You can boot an OS once this way to try it out, or you can work this way regularly. USBs offer writeable, persistent storage. Memory sticks have no moving parts so they have better access times than optical discs.

The big downside to USBs is that many older systems won't boot from them. This is a BIOS limitation. Circumvent it by using a boot manager that boots the computer from a device your BIOS supports, then immediately switches control to the USB device. PLoP is one free boot manager. Another potential downside to USB booting is shortened lifespans for USB memory, due to its constant use as the OS resident media.

Virtual Machines

Desktop virtualization has matured in the past five years. Hardware technologies like Intel's VT-x and AMD's AMD-V underlie and improve it. These were introduced in 2005 and 2006, respectively.

This chart lists and compares platform virtualization software. Oracle VM VirtualBox is probably the most popular free offering for personal use. Once owned by Sun Microsystems, the product was taken over by Oracle with their acquisition of Sun in January 2010.

VirtualBox installs under an existing host operating system, then creates one or more virtual machines in which various guest operating systems run. The possible host includes most popular operating systems, such as Windows 7, Vista, Windows XP, Linux, Mac OS X, Solaris, and some BSD versions. Guests include all the host systems plus even some lesser known contenders, like Haiku, OS/2 Warp, Syllable, SkyOS, ReactOS, and the rest of the Windows and BSD versions.

VirtualBox offers all the advantages of platform virtualization. These include the abilities to:
  • Securely run more than one OS at a time
  • Flip between the systems as you like
  • Start, stop, and pause the systems independently
  • Communicate between systems through several mechanisms
  • Dynamically allocate and switch processor and memory resources among the systems
  • Make an image of a current system state for backup/restore by taking a snapshot
VirtualBox does not require CPU-based virtualization support (VT-x or AMD-V). But it does require the cumulative resources to run all the OS's you want to at one time. Thus it may not be an option for some refurbished computers. If your computer supports it, virtualization is a great way to go. Get started with VirtualBox with tutorials from here and here. Visit the official VirtualBox website here.

Co-Installing to Disk

If virtualization and Live CDs don't appeal, you can always go the traditional route and install more than one operating system to disk.

Assuming the computer already runs Windows and you want to co-install a Linux distro, the typical procedure is:
  1. Boot the Live Linux CD for the product you want to install
  2. Shrink the Windows partition to create sufficient space for the Linux install
  3. Create a new Linux partition in the newly-released space
  4. Optionally create a swap partition for Linux virtual memory
  5. Install Linux into the new Linux partition
  6. Install a tool like GRUB or LILO to display an OS selection menu upon system start-up
  7. Reboot and verify the OS selection menu and the new Linux install
Let's walk through the steps.

First you boot a Live CD or DVD for the Linux you want to install. This allows you to test and ensure the distro drives all your computer's devices and works the way you want -- before you install anything. It also creates a working environment from which you can perform the subsequent steps. Most distros provide the partition management and boot control tools you'll need. Ubuntu and Puppy Linux, for example, both offer Live CDs that bundle the GParted partition manager and the GRUB boot-selection tool.

Assuming the computer came with a single disk with Windows installed, you'll probably need to shrink the Windows partition to make room for Linux. How much space Linux requires depends on the distribution. A small Linux like Puppy installs easily in a gigabyte or even 500 megabytes, while a full-sized Linux like Ubuntu typically requires anywhere from three to eight gigabytes.

Beyond the operating system partition, you may also want to create a swap partition. Linux uses this disk space for extra memory (or virtual memory) if real memory runs out. Do you need a swap partition? Think of it this way. What is the maximum size of memory you'll require for the Linux operating system plus the maximum number of applications you'll have open at one time? If this amount is greater than the size of real memory, you need a swap partition to make up the difference.

Since users run different distros and use their computers in different ways, it's not possible to devise an all purpose rule-of-thumb for sizing swap space. Running typical home and office applications, for example, I never use the swap if the computer has at least 1 gigabyte of RAM. Specialized applications change this recommendation. For example, when I do database testing and research, even computers with several gigabytes need swap space.

The next step to installing Linux on a Windows computer is to ensure you have some free disk space on which to install Linux. You may have to reduce the size of the Windows partition on a single-disk Windows system because, by default, many vendors still pre-install Windows to consume the entire disk.

It's wise to run a Windows Disk Check prior to shrinking the Windows partition to ensure file system integrity. Then use the GParted Linux tool to shrink the Windows partition. You do not need to run the Windows defragmentation utility prior to this operation -- contrary to what you might read elsewhere on the web. GParted successfully shrinks NTFS partitions regardless of whether they have been defragmented.

At this point you have a target partition ready into which to install Linux, and optionally, a swap partition. Now you can install Linux. Most Live Linuxes have an "install icon" on their desktop that you click to start the install process. Although I've discussed getting the partitions ready prior to running this install tool, many Linuxes (such as Ubuntu), bundle the partition management tool as a step within their standard install process. In other words, you can either manually do the partition management in advance, or do it while you run the Linux distro installer.

Here's an example of GParted in action. This screenshot shows what you can do with multiple operating systems even on an old refurbished test machine with two tiny 40G disks. This system has four operating systems installed on its primary drive. This includes a 13.67 gigabyte NTFS partition with the original Windows XP SP3 install. Then there are Linux partitions for Ubuntu, Puppy, and Vector Linux. The single Swap partition of about 510 M services whichever Linux runs. A second 40G disk drive (not shown), contains three more Linux distros, three backup partitions, and a BSD variant. Quite a lot of action for an old computer!

GParted Sample Screen
An Example GParted Screen

The first line in the above display is a FAT32 partition on which all user data resides. Storing user data apart from any of the operating system partitions is wise because it segregates data from the operating systems. This makes it easy to identify and back up user data. Moreover, the user data remains unaffected regardless of what changes you make to any of the operating systems or their partitions. Should an "OS disaster" occur it's unlikely that data on its own partition will be affected.

It is unfortunate that many consumer computers by default still store user data on a single Windows partition that consumes the entire disk. This practice is a hold-over from the days when disks were smaller and it doesn't leverage the advantages of today's larger disks. With big SATA drives it makes much more sense to segregate data and OS partitions. I know some people who even separate out certain kinds of data files into their own partitions. For example, you might have a "multimedia partition" for photographs, music, or videos. This makes it easy to separately manage large data files. Or segregate your work from your play by creating an "office partition" for office suite documents. Easy partitioning makes it possible to organize your system in the way that works best for you.

When adding Linux to a Windows computer, you'll install a boot manager, such as GRUB or LILO. In Ubuntu and Puppy, this is an option in the last step in the install process. GRUB takes over the master boot record or MBR on the computer's disk and inserts code that displays a menu to select any of the resident operating systems when you start the computer.

Don't worry about your existing Windows being bootable. GRUB is very good at automatically detecting any operating systems already on your hard disk. It generates the necessary code to make them boot-time selections. So GRUB will find Windows and automatically place it in your new boot-time OS selection menu.

When the install is complete, reboot your computer and you'll see GRUB's menu with options to enter either Windows or Linux. Try both out to ensure everything works ok, and you're done. Voila! Multiple OS's on your computer.

Once you've gotten everything working, you might want to make the boot-time OS selection menu more readable. If you used GRUB, just edit the file menu.lst in the /boot/grub folder. (Save the original menu.lst file first as a backup!) If your Linux distro uses the newer GRUB 2, well, there are many advantages to this new boot loader, but easy changes to the boot menu is not among them. See this excellent tutorial for help. It's too bad that GRUB 2 is a step backwards for ease of use, especially since it would have been easy for the product to use a menu.lst file if present and convert it to the required internal code.

Table of contents
  1. How to Run Multiple Operating Systems, 1/2
  2. How to Run Multiple Operating Systems, 2/2
e p (5)    26 Comment(s)

Technology White Papers

See More