Windows NT 4.0/Windows 95 (FAT32) Dual Booting

This is just a short note to document some interesting stuff I found out about disk partitions and how to dual boot WinNT4 and Win95 using NT's boot loader.

The Basic Problem

I had Win95 on a FAT32 partition. I resized this in order to make free space for WinNT4 on its own NTFS partition. After installation, WinNT4 _should_ detect Win95 and include it on its "boot loader" menu as an option. It doesn't, however, recognize FAT32 partitions, so if that's what Win95 is sitting on, you were out of luck...

...or so say most people on various Internet discussion groups.

Some Background

On my other page on running Linux on my laptop, I mention the Linux/NT HOW-TO document. It's excellent-- read it. I also found other sources that demystify the hard disk boot process on PCs. Here's a summary (as I understand it, anyhow).

Your entire hard disk has a Master Boot Record, which contains some executable code and a table of its partitions. When you create/delete partitions, the MBR partition table gets updated. Also, when a partition is marked as "active" or bootable, the code portion of the MBR will jump to the boot sector of that partition to load the OS located there.

The first 512 bytes of each partition contain some layout information, the most pertinent part of which is the boot sector location for that partition (where the OS starts loading). 

The NT boot loader allows you to specify a file that contains a dump of this 512-byte portion of disk, so it can basically boot any partition at all, irrespective of file system type. Nice.

(This is the way to load Linux using NT's boot loader-- simply use the "dd" command to create the dump, copy it to the NTFS partition, make an entry in boot.ini to use it, and you're set.)

The Solution

Of course, I can't claim credit for devising this stuff. I'm just happy I found it, and want to spread the word. 

So it's as simple as dumping the first 512 bytes of the Win95 FAT32 partition to a file, so NT boot loader knows where to start loading. And of course, there's no easy way to do this in Windows 95. If you also run Linux on your system, you should be able to use "dd" to create the dump. See the HOWTO for specifics.

Fortunately, someone named Gilles Volant wrote a great utility called bootpart which does this for you. I've used it with great success.

Now, why couldn't MS have provided a nice program like this, considering they designed the NT boot loader...?