Dual boot Vista and Windows 9x / ME on one drive

Archives Forums/Win32 Discussion/Dual boot Vista and Windows 9x / ME on one drive

Hotcakes(Posted 2006) [#1]
I had a few probs doing this and there was no real help on the net to do it, so I'll just jot down a few points here in case someone ever needs them. Hopefully Google will pick this up, making it useful ;]

The problem: Vista's new improved boot loader can only natively boot Vista, or an NT based system. Microsoft don't officially support Win9x systems anymore... but they created the files necessary to do this, so thanks, MS!
The solution: Either something like GRUB, but that wasn't available to me (footnote 1), or use Vista's boot loader to load NT's bootloader, which is capable of loading a DOS environment ;]
Requirements: On top of Win98 and Vista, you will need one file from Win2000, WinXP or Win2003 for their bootloader. These can be taken from an existing installation or from the install cd. Also VistaBoot PRO, unless you know how to use bcdedit manually (shudders). You can get that for free from www.vistabootpro.org.

Win98 can only run from a FAT16 or FAT32 partition and Vista can only run from an NTFS partition, so set up your partitions accordingly - however the FAT32 partition needs to be the first partition on the disc (because of Win98's crappiness). Install Win98 first, Vista last. Any NT based OS should be installed in between and will provide you the necessary NTLDR file later on. Install VistaBoot PRO. Use it to add a legacy OS on the D drive (footnote 2). If you go to the top menu tab and the extended description and scroll down to the legacy entry, you will see it points to NTLDR. This file can be grabbed from the boot partition of an NT install (in which case it's probably in the right place already - the first patition on you drive, the Win98 partition), or from the install cd, in the i386 directory. Next, in the same directory, you need to create a boot.ini (I will cover a minimal ini for Win98 only, if you have an NT OS installed you will need to tweak this yourself, but there's heaps of info out there on that):
[boot loader]
[operating systems]

Next, you will need the first 512bytes of the Win98 partition for the MSDOS bootstrip, which can be gained in a number of ways, thankfully Vista does this job for you during installation (unless you had some other NT based OS installed) - just rename BOOTSECT.BAK in your Win98 partition to BOOTSECT.DOS - and that's it! Next boot you should get Vista's boot loader displaying Vista and whatever name you gave the legacy OS ('Microsoft Windows ' by default). Select the legacy OS and you're in!

End of guide! Extra bits:
If you change the timeout in boot.ini to something higher, you will see the NT bootloader come up with two entries (the bottom as default) - both named 'Windows (default)'. The top one will get the system to try and load an NT based OS, which obviously won't work, which is why I set the timeout to 0.

There may be a way to boot into Win98 without altering Vista's boot loader (no Vistaboot PRO) - I noticed when I had an operating system entry in boot.ini that it actually popped up in Vista's boot loader as well! You can do this by putting the following line under the [operating systems] entry:
C:\="Windows ladedah"
- sadly, when actually selecting this entry from Vista's bootloader, I was greeted with a blank screen. I'm not sure why it went wrong, but it probably has something to do with the new bootloader not being able to boot using BOOTSECT.DOS. Or, maybe it would work if it pointed to D:\ - I didn't test.

(Footnote 1: I would have used GRUB, but I used Win98's fdisk which destroyed my partition table and now Ubuntu's live cd hangs during boot)
(Footnote 2: For me, I had a FAT32 and then a NTFS partition, since Vista sees itself as the C drive, it configured the FAT32 partition as the D drive. You need to tell Vistaboot PRO the drive letter for the partition your installation of Win98 appears on under Vista. Win98 still thinks of itself as a C drive also, but there is no problem here since it can't see Vista's NTFS partition anyway.)

Damien Sturdy(Posted 2006) [#2]
I used a third party bootloader, i HAD to... because:

to boot vista i had to have my Vista CD *OUT* of the cd drive.

to boot my old os I had to have the vista cd *IN* the drive. lol!

i got around it by using a third party boot loader to find the correct windows boot for the older OS. If I uninstall this boot-loader, I will not be able to boot windows xp without the vista cd. How blooming strange is that!?

H&K(Posted 2006) [#3]
to boot my old os I had to have the vista cd *IN* the drive. lol!

Mad, the world has gone mad. Have Microsoft done this for some good reason?

Hotcakes(Posted 2006) [#4]
That's not how it's supposed to work at all. =]

Damien Sturdy(Posted 2006) [#5]

Mad, the world has gone mad. Have Microsoft done this for some good reason?

As Toby said, it's not supposed to work like that, but for some reason the system boots off a different hard drive when the vista cd is in the drive. Totally wierd, and equally backwards!!!

and now my boot loader is nagging me to purchase lol. Suppose I had better do so.

Hotcakes(Posted 2006) [#6]
Nagging you to purchase? Why aren't you just using GRUB or LILO or something? They're very simple to set up.

I know back in the 2000/XP/2003 days the CD would check for a harddrive installation and if there was one it would ask to press a key instead of going straight into the installer. If you didn't press a key it would boot your OS... bypassing whatever program is stored in the MBR. I suppose a similar thing is happenning here - the Vista setup DVD is detecting the wrong partition (probably a screwed up Active or Boot setting on the MBR). It's still odd though. =]

Damien Sturdy(Posted 2006) [#7]

Why aren't you just using GRUB or LILO or something? They're very simple to set up.

I didn't have a Linux distro to spare, and I don't have a floppy drive.

Of course, they were my first choice.