Triple-booting Windows 98, Windows 2000, and Linux

Assumptions/goals:
This is my method to create a basic but fully-functional triple-boot system with win9x, winnt/2k, and Linux. If you have special needs, it shouldn't be too hard to use this guide as a starting point and adjust to fit your needs. I've sprinkled a couple hints here and there if you want to do something different.

At formatting time:
As always, the first thing you need to do is plan out your partitions. If you're making a 9x/2k/Linux system, you're probably using 9x for games or something else specific and 2000 or Linux for most of your work. In this case, here's what I do. Of course, since we're talking about computers, there are a million ways to do everything and a millions reasons to do something this way or that way. So, I'm not going to explain in detail the reasons for everything I do, and I don't want to describe every possible alternative. This is one way to do things. If you want to do it another way, fine. My way is not the only way, or even the best way. But it's the only one I'll talk about. So, with that in mind...

  1. Assuming you're starting with a couple boot floppies, install CDs, and a blank hard drive, boot to a DOS floppy and start partitioning your drive. (You could do all of this with Linux's fdisk, but I haven't figured out all the ins and outs of that, so I like to use DOS's FDISK just to make sure the partition is made active just the way Windows likes it, etc. Make sure your boot floppy has format.com and fdisk.exe on it. Also, Windows 2000 will want smartdrv on there as well.) So, boot to the DOS floppy and...
  2. Create a FAT-16 partition between 500MB and 2GB. A bit about DOS's FDISK and FAT-16/32: When you run FDISK (assuming the disk was from Win95-OEMSR2 or newer) the first thing you'll see is a screen asking if you want to "enable large disk support." Answering Y will let you create FAT-32 partitions, and an answer of N will let you make FAT-16 partitions. FAT-16 partitions are more easily read by various operating systems but it has a limit of 2 GB per partition. You can only make one type at a time, so if you want some of each (as I describe here) you'll need to make one type, reboot, and make the other type. So, to make this first FAT-16 partition, say "N", create the partition, reboot, say "Y", and make the rest.
  3. Reboot, run FDISK again, answer "Y", and make a few more partitions: a small one (which will become Linux's /boot/), one for Windows 2000 (which can be converted to NTFS during 2000's installation), and one more that will get deleted and made into Linux's partitions. For example, here's what I have on my current system: Here's a quick play by play: boot to a DOS floppy, fdisk, N, make a 500MB partition, make it active, reboot. Run FDISK again, Y, make the rest of the disk an extended partition, then make 250 MB (will be Linux's /boot/), X GB (will be W2K), and Y GB (will be Linux) partitions.
  4. Once you've made your partitions, format them. You really only need to format the first and third ones. Also, if you're doing this on a disk that previously held other OSs, it's a good idea to say 'fdisk /mbr' to write a DOS/Windows bootloader. (It'll go away later but it's handy during the Windows installation process.)
  5. Now, we're almost ready to start installing things. Before you do, boot to your Linux floppy or CD and use it's FDISK to turn what is now D: into what will become /boot/. All you need to do is run Linux's fdisk and change the partition type to ext2, aka Linux native. Also, you should convert what is currently F: (the 4th partition) to ext2 as well. Or, if you have your partitioning scheme already figured it out, cut F: into /, swap, var, and whatever else you want. The main thing is to make sure Windows doesn't see it as FAT space.
  6. OK, now your disk is all cut up. Install Windows 9x first. It'll think it's the only OS on the whole machine (actually, that's true, right now) and that's just the way it likes it. Next, install Windows NT/2000. Put it onto D: and it'll recognize the 9x partition and set up its bootloader accordingly. Keep in mind that NT/2000 writes boot.ini (and probably other files) to C:, even when it's installed onto D:.
  7. By the way, I like to keep all the installer files on C:. Here's my trick: custom-build a boot floppy with XCOPY.EXE, XCOPY32.EXE, and XCOPY32.MOD (all available from any win9x installation) on it. Make two directories: C:\win98 and C:\i386. Copy the win98 files into C:\win98. Boot to DOS on the hard disk (you formatted C: with 'format C: /u /s' to make it bootable, right?) and run C:\win98\setup.exe to install Windows 98. Once that's all done, pop in your w2k CD, copy the contents of its I386 directory into C:\i386 (Windows will copy the files much faster than DOS will), reboot into MS-DOS mode, run SMARTDRV.EXE from the floppy, then run C:\i386\winnt.exe to start installing Windows 2000.
  8. Once Windows 2000 is on, install Linux. Different distros work different ways, but they're all pretty easy now—just boot to the CD, yes, yes, yes, yes, and you're done. Install LILO or GRUB and if they only give you two choices (Windows and Linux), don't worry. Once you select 'Windows', you'll be dropped into the Windows 2000 bootloader, which will then give you the choice of going into 2000 or 98. And there you have it—my method for creating a nice little triple-booting system. I've done this successfully about a half-dozen times, and I've left out descriptions of another dozen not-so-successful runs, but I have included a lot of what I've learned from the bad ones. I haven't talked about every snag I've hit, but if you stray too far from these instructions, you're likely to find some. A couple highlights: a Windows NT system that couldn't write boot.ini to C:, which was FAT-32 formatted; a system that would boot to Windows 98 but not 2000 after installing Linux (because I made the Linux partitions after installing Windows 2000, so D: wasn't where boot.ini thought it was), and many other fun experiences too numerable to mention.

    I'd love to hear from anyone who follows these instructions to hear if it was successful or not, or if you want to know about potential hangups, write to me and I can answer some questions about stuff I didn't cover here. Good luck, and happy booting!

    -----brian
    multiboot at pixelcity dot com

    [Brian Ashe's home page] [brianashe.com/linux]