Dual booting no more

For a while I was dual-booting my desktop PC between Windows and Linux. I even figured out how to get Thunderbird and Firefox to share profiles between the two OSes. But I’m not using that setup any more.

If you want to run Linux and Windows on the same machine, you have three choices. You can dual-boot, you can run Windows (or a Windows emulator) under Linux, or you can run Linux under Windows.

Dual booting, I eventually concluded, is just too inconvenient — when I want to do something quick with my PC and it happens to be in the wrong OS, I have to sit around twiddling my thumbs while it shuts down and boots up again.

Running Windows under QEMU is another option, and in fact it’s what I do on the desktop PC at one of my customer’s sites. But even with KQEMU, it’s still pretty sluggish, and pretty limited in functionality. One of the benefits of dual-booting is that you can boot into Windows to use peripherals that have no driver support under Linux, and that’s impossible if you’re using QEMU. (Maybe other virtualization technologies like VMWare are better in that regard, but read on.)

There’s also WINE, of course. That doesn’t have the performance penalty of QEMU — in fact, in some cases it’s noticeably faster than Windows on the same machine — but it does nothing for the peripherals, and though it’s a marvelous, impressive piece of programming, it’s still not all that Windows-compatible. (Maybe one Windows app out of three works flawlessly under WINE for me, to be generous.)

So the other choice is to run Linux under Windows, and that’s exactly what I’m doing. The key is CoLinux, which uses a modified version of the Linux kernel that knows it’s running as a process on a host OS. That means no equivalent of QEMU is needed, though you do need to be running an X server under Windows if you want to use GUI apps (I use the Cygwin one.) Performance is great; apps running under CoLinux are slightly slower than under Linux proper, but only barely. My CoLinux installation mounts the raw disk partition I set up for my dual-boot configuration, so the Windows filesystem doesn’t impose any performance overhead. The CoLinux Wiki describes how to convert a dual-boot system to CoLinux.

This is truly the best of both worlds for me: I can use all my Windows-only peripherals, run whatever games I like, and still have Linux at my beck and call. I no longer have to do the Firefox/Thunderbird dual-boot dance, because I can just run them under Windows right next to the Linux shell window I’m running on the same host.

2 Responses to “Dual booting no more”

  1. Jason Says:

    Unfortnately, not the alternitive for me. Why
    1) SECURITY - Windows just blows
    2) Eash of Updates
    2) Inverse hardware support 1: Architecture - I have an AMD64 and would like to put it to full use.
    3) Inverse Hardware problem 2: I have a cd writter that works in linux but not winXP….

    In my world, GNU/Linux is actually a more advanced and functional OS than any Mirosoft product. …just wish XEN would release a win XP patch or that Quemu were a little faster.


  2. Sam Says:

    Just thought I’d write this while I’m still a little excited about coLinux. It’s running now behind the Windows NAT so it’s not really serving anything at the moment. In all I think it’s great! Thanks for recommending coLinux. I had it on my computer but it was on the back burner till I read your blog.

    To carry on the traditional M$ debate. . .
    Windows doesn’t blow. I like NTFS for example. It’s polished and if you need a computer to do some useful work you cant waste time experimenting and configuring. OTH the gui for networking objects takes as much time to learn and debug as flat config files and the scripting support leaves something to be desired. The money you pay for one copy of XP is worth it though.

    CoLinux + XP Pro would make a nice home-enterprise (if there is such a thing as a home-enterprise) server. The idea is that you could still have LDAP, a PDC, and all the other goodies and not have to dedicate a computer to an OS that. . . well never mind. I love linux but, my god for the time I spend with it.

    I have some configuring to do!


Leave a Reply