coLinux: Linux for Windows Without Rebooting

Operating system virtualization is popular technology these days. People run
different operating systems on top of their existing ones not only for
experimental purposes but also for production use. Many different
virtualization systems exist. VMware, which runs on both Windows and Linux,
may be the best-known proprietary example. It can host many operating systems
from Win98 to FreeBSD and different flavors of GNU/Linux.

Of course, the free and open source software communities have their own virtualization software. Bochs follows the example of VMware, while Plex86
also does CPU virtualization.

For cases in which you'd rather run different versions of Linux atop an
existing Linux installation, User-mode Linux may be a better answer. It operates
at the kernel level and can supply a very stable, try-and-see sandbox for
different Linux kernels, with almost no virtualization penalty. Because of
this, more and more developers use User-mode Linux to test new kernels, drivers, etc.

What if you want to run GNU/Linux atop a Windows platform or try Linux
without installing it on a partition itself, thereby preserving — and not even
rebooting — your Windows system? Don't worry; VMware and Virtual PC are
not your only choices. A new free software project called coLinux, or Cooperative Linux, lets you do nearly everything User-mode Linux does on Windows 2000 or XP.

Installation

To start, download two packages from the coLinux site. One must be the binary coLinux system. The other is your actual file system, a pre-installed
GNU/Linux system. At the current moment you have two choices for the file system -- Debian or Gentoo. The project's Wiki site has instructions for
making a Togo Linux install also. We'll use the Debian system for the purpose
of this article.

Linux/Unix System Administration Certification-- Would you like to polish your system
administration skills online and receive credit from the University of Illinois? Learn how to administer Linux/Unix systems and gain real experience with a root access account. The four-course series covers the Unix file system, networking, Unix services, and scripting.
It's all at the O'Reilly Learning Lab.

With version 0.6, installation is easier than ever. Download and run
coLinux-0.6.0.exe. The tap device and everything else will be
taken care of. For the sake of simplicity, install to
C:\colinux.

If you are using an earlier version, take the following steps manually.

Now that you have downloaded these files, extract them to some directory,
preferably C:\colinux if you do not want to make many changes
after the install. The file system (18MB) will decompress to 1Gb. Do not worry
about that, just be sure that you have enough free space.

If you are using Windows XP this process is a bit different: Control panel
-> Add hardware -> Yes -> Add a new hardware device -> Install from
a list (Advanced) -> Network Adapters -> Have Disk -> Chose OemWin2k
driver (from where you unzipped it) -> Next -> Next, and Finish.

In version 0.54, there was a syntax error in default.config.xml where the root file system's
<block_device> tag remained open. Change the root file system
to refer to your file of choice or put the name of the extracted 1GB image
file's name into root_fs. Then, close the tag by adding
</block_device> after enabled="true"> and
before the next <block_device> tag. This does not apply to
version 0.6.

You can make other changes to the config file. For example, you can change
the amount of RAM with the <memory> tag or choose your swap
file. Be cautious, though.

Booting

If everything is ready, you can launch coLinux from the
colinux-daemon. This will open a console window and boot your
Linux system. You should see something like Figure 1.

Figure 1. coLinux booting.

After booting, another window named "Cooperative Linux console" will open.
This will be your virtual Linux monitor. Here you will see a normal Linux
system booting, as shown in Figure 2.

Figure 2. coLinux console booting.

You're ready to go when it says:

Debian GNU/Linux 3.0 colinux tty1
colinux login:

Log in as root with no password (remember you are still on
Windows ;). You'll be in the loop file system, still just a single file on your
Windows drive. If you use df -kh to see used space, you'll see
the following lines