VOGONS


Dual boot

Topic actions

First post, by Glidos

User metadata
Rank l33t
Rank
l33t

Hey, anybody know how to create an XP/W98 dual boot system where both OSes think they are on C: while they are running?

I've found instructions on the net for NT/W98, but they involve using something called rdisk.exe, whcih seems not to exist in the XP world.

Reply 1 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

If you have a decent partition manager, it is no big deal.

This is how it works: When your computer boots, the BIOS searches your hard disk(s) for a partion of type PRIMARY with an ACTIVE flag. The first such partition becomes the boot partition and this where the boot code/boot loader is loaded from. And a Microsoft boot loader automatically assigns the letter 'C' to that partition.

So, the easy way is to use a partition manager to create 2 primary partions on your hard disk. Then you enable the ACTIVE flag on partion #1 (P1), and install Windows 98 on P1. Shut down, start your partition manager, and disable the ACTIVE flag on P1, and enable it on P2. Boot and install Windows XP.

A little aber-dabei: If P2 (with WinXP) is formatted as an NTFS file system, Win98@P1 will not be able to see P2, but WinXP@P2 will be able to see P1 as D:

If you want to avoid each OS from seeing each others partitions, you can HIDE them using your partition manager. OBS: They are not really hidden, you just (temporarily) change a single byte that tells the OS what kind of filesystem that is on the partition. If you change the byte to some gibberish that neither understand, they will simply ignore the partition.
--
MiniMax - "Keine Hexerei - nur Behendigkeit"

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 2 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Really I wanted to do this in a way that I get a menu on boot up from which I can select which OS to boot. I didn't really want to have to run any sort of configuration tool. Did you have a particular partition manager in mind? On the other hand, I don't mind if I have to use two disks, rather than two partitions on a single disk.

Making use of that fact that W98 can't see NTFS occured to me, but didn't get me anywhere. At one stage I had XP on the master and 98 on the slave; I added a line to boot.ini to make it boot the slave, hoping that 98 would come up seeing its own disc as C because it couldn't understand the format of the master. Didn't work.

I think I could do this with lilo, because that can be set up to make the BIOS calls that swap discs, but I'd proabably be forced to have a small Linux partition to do it, which I'd rather avoid.

The instructions I've seen say to

1) Install XP on the master

2) Change HDD jumpers to swap master and slave.

3) Install 98 on what is now the master (leaving XP on what is now the slave).

4) Copy boot.ini ntdetect and ntldr form the XP disc to the 98 disc.

5) Change boot.ini to reflect that XP is now on the slave, and that there
is a second option (being 98 on C:)

6) Use a recovery disc to blat the MBR tht was on the XP disc, onto
the 98 disc, so that it starts with the XP boot sequence up until reading
boot.ini.

It was 6 I couldn't find a way to do.

Reply 3 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
Glidos wrote:

Really I wanted to do this in a way that I get a menu on boot up from which I can select which OS to boot. I didn't really want to have to run any sort of configuration tool. Did you have a particular partition manager in mind?

I use Acronis PartitionExpert for managing my partitions, but any partition manager will do. Acronis also offers their OS Selector which includes partition management.

Perhaps you might want to look at BootIt NG (http://www.terabyteunlimited.com/). You can download a fully working trial version, and test it. It also include a boot manager 😀

I briefly used something called System Commander. It worked, but all it really did was to do the ACTIVE/HIDE operation according to a nice little menu. I decided that I prefered to do it manually, and not to rely on too much magic behind the screen(!).

More info on other boot/disk managers can be found here: http://members.cox.net/dos/boot.htm

Glidos wrote:

On the other hand, I don't mind if I have to use two disks, rather than two partitions on a single disk.

Two partitions, or two disks - it does not really matter. My guess is that people recommendes two separate disks, because the common DOS FDISK program will only create ONE primary partion - the rest of the disk has to be an EXTENDED partitions. And only a PRIMARY partition can be made ACTIVE - and bootable by a BIOS.

But that is a limitation of DOS FDISK - the Master Boot Record (MBR) can handle 4 primary partitions (or more commonly 1-3 primaries, and 1 extended partition).

From the point of the BIOS, it does not make any difference if the active partition is one out of 2 partitions on the same disk, or if the active partition is on one out of 2 disks.

Glidos wrote:

Making use of that fact that W98 can't see NTFS occured to me, but didn't get me anywhere. At one stage I had XP on the master and 98 on the slave; I added a line to boot.ini to make it boot the slave, hoping that 98 would come up seeing its own disc as C because it couldn't understand the format of the master. Didn't work.

BOOT.INI does not really boot anything. It's just a data file used by the OS loader (NTLDR). When NTLDR is running the drive letter assignments (including what C is) are already done.

Glidos wrote:
I think I could do this with lilo, because that can be set up to make the BIOS calls that swap discs, but I'd proabably be force […]
Show full quote

I think I could do this with lilo, because that can be set up to make the BIOS calls that swap discs, but I'd proabably be forced to have a small Linux partition to do it, which I'd rather avoid.

The instructions I've seen say to

1) Install XP on the master
2) Change HDD jumpers to swap master and slave.
3) Install 98 on what is now the master (leaving XP on what is now the slave).
4) Copy boot.ini ntdetect and ntldr form the XP disc to the 98 disc.
5) Change boot.ini to reflect that XP is now on the slave, and that there
is a second option (being 98 on C:)
6) Use a recovery disc to blat the MBR tht was on the XP disc, onto
the 98 disc, so that it starts with the XP boot sequence up until reading
boot.ini.

It was 6 I couldn't find a way to do.

Hmm - I don't think that will ever work. When XP is installed, it will pollute the registry, and mulitudes of INI files with "C:\.......". Using the method above (if it could be made to dual-boot), would assign the letter D to the XP partition, and prevent XP from ever running.

If you want to go down that route, I recommend this guide: http://www.tburke.net/info/ntldr/ntldr_hacking_guide.htm

One question though: Why do you want Win98 and WinXP to both be on the C drive? I boot from my C-partion, with a BOOT.INI that allows me to run Win95 from C, XP from H, and a test-installation of XP from K.
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 4 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Hey, magic! Load of useful info. I shall check it all out later today.

Hmm - I don't think that will ever work. When XP is installed, it will pollute the registry, and mulitudes of INI files with "C:\.......". Using the method above (if it could be made to dual-boot), would assign the letter D to the XP partition, and prevent XP from ever running.

Yeh, you are right, but that's only because I forgot to mention the last step which is to boot the damaged XP (being in D: when it was installed on C: ), and then use "Computer Management/Storage/Local Drives" (or edit the registery) to swap the drive letters.

I want XP on C, by the way, because as part of my work, I use some not-brilliantly-written tools that get confused when the OS is not on C.

Reply 5 of 22, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Correct me if I'm wrong but couldn't you just.

1. Install 9x
2. Boot into DOS, rename 9x dir to some wacky name. (Not sure if 2K/XP would detect 9x and try to upgrade....because I never upgrade anyway)
3. Install XP.
4. Rename wacky 9x name to whatever name you installed to originally.

All you really need at the end of boot.ini is:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\="Microsoft Windows 9x"

Which will access MSDOS.SYS, and then MSDOS.SYS looks for the Windows dir wherever you have it installed. Wether it's C:,D:, L: or Z:.

Make sure IO.SYS,MSDOS.SYS,COMMAND.COM are located with NTLDR,NTDETECT.COM on a FAT16/FAT13 partition as well as 9x.

How To Ask Questions The Smart Way
Make your games work offline

Reply 6 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Hmmm, maybe. One trouble though is that both XP and W98 use the folder name "Windows". Maybe one or other could be installed with a different folder, but that's exactly the sort of departure from the ordinary that I'm trying to avoid.

I think I've sussed one way to do it, but it only works with a fresh install, not as post process on some already exsisting installations. Also works only with two discs

That is

1) Install W98 on C

2) Install XP on D

3) Change HDD jumpers to swap master/slave

4) Trash XP installation on C (which was D), and reinstall, thus giving a
new XP installation on the now C. There is still W98 on D, which is currently unusable.

5) Swap the jumpers back.

6) Rebooting now will make use of the dual booting MBR from when XP was installed on D. It will let you boot into the new XP, which is now on D, but is confused because it was C when it was installed.

7) Use Computer management to change XP's idea of the disc names.

That should work, but I'm still going to check the MiniMax's links to see if there's a better way.

Reply 7 of 22, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

The Windows name doesn't matter.

Open up a command prompt and type in "SET" and you should see %WINDIR%

Any halfway decently programmed program should use the windows variables.

If your still set on using "Windows" for both OS's without using any third party Boot managers. Then:

1. Wipe both drives
2. Install 9x to c:
3. Install XP to D:

That's it. You should now have the XP boot menu with 9x added to it.

I put 9x on C: and XP on D: so you could use NTFS with XP, that's assuming that you would want to use NTFS....you could either use an NTFS driver for 9x or use FAT32 for both.

I'm kinda confused about what your trying to do in your post above.....oh DUH! (I actually read your post) you want XP on C: because of your program....

GET A BETTER PROGRAM!!! 😁

Hmmm, I'd use what MiniMax said then. Acronis PartitionExpert is great along with all of their other products. One of the first ghosting programs I ever actually bought was Acronis True Image 6.0 and I just bought 7.0...EXCELLENT PROGRAM. I've tried PartitionExpert and it's great too.

How To Ask Questions The Smart Way
Make your games work offline

Reply 8 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

The thing is I work on a product that has to be ported to a new device every other week (literally), and each new set of development tools is a new oportunity for a mess up. I want my XP installation to be the most standard typical configuration possible. So must be on C and must use the default name for folders, and W98's stuff mustn't be mixed in on the same partition.

I have your set up at the moment (XP on D), well actually it boots into Linux as well, but the XP on D runs me into niggles from time to time, so I'm determined that the next time I build a computer I will get XP onto C:

Reply 9 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

DosFreak, you said something very interesting, but I'm not sure I've understood it.

Is this right: if you install W98 on C and then XP on D, not only does the XP overwrite the MBR on C, but it also overwrites the boot secter on C. So, booting actually boots C, which runs ntldr, which in turn reads boot.ini.

And, if you select "C:\="Windows 98", this doesn't load the boot sector from C, it looks directly for MSDOS.SYS.

If that is true, I know why my previous attempts didn't work. I had a C drive that had once been alone in a computer and had Win98 installed on it. I also had a D: drive that had once been alone in a computer and had XP installed on it (so C when installed). I tried to make the C drive boot the XP installation by using the recovery console and fixmbr, but I think I should have used fixboot to overwrite the boot sector on C.

Reply 10 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
Glidos wrote:

Is this right: if you install W98 on C and then XP on D, not only does the XP overwrite the MBR on C, but it also overwrites the boot secter on C. So, booting actually boots C, which runs ntldr, which in turn reads boot.ini.

And, if you select "C:\="Windows 98", this doesn't load the boot sector from C, it looks directly for MSDOS.SYS.

Not quite. When installing XP on C, it detects the current OS, and lifts the boot sector of the MBR and stores it in a file called ... da da ... C:\BOOTSECT.DOS. Only then does it add the entry for "C:\="Some comment that does not really matter", it overwrites the bootsector in the MBR and continues with the installation.

Btw. in addition to Acronis PartitionExpert I also have their TrueImage product 😁

One final thought - dual booting is fun, challenging, and maximises the use of your hardware. But - if you are doing this for living, and the requirement to use C for both OS's is that important - why not throw some hardware or software at the problem? Get 2 PC's, or get a removable harddisk enclosure, or rip the current harddisk out and get 2 USB/Firewire disks. Or - if develop in XP, and only needs Win95 on C for testing - buy a license for Virtual PC or VMware and install Win95 in the soft-PC? Hell, if money is an issue, try Bochs - assuming of course, that your device are accessible from within Bochs.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 11 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

But isn't BOOTSECT.DOS just a backup? Taking the

C:\="some comment"

branch doesn't make use of it, from what DosFreak was saying. And is it not the case that the XP installation overwrites both the MBR for the C: drive and the boot sector for the C: partition?

Can't use VMWare, because the main thing I need W98 for is testing Glidos (and the odd game that wont work under XP). Don't want to waste a whole PC on W98, though. Could go for the drive swapping, but I know this always-on-C dual booting can be done (with LILO, if not by other means), so I prefer that way.

Reply 12 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

But isn't BOOTSECT.DOS just a backup? Taking the

C:\="some comment"

branch doesn't make use of it, from what DosFreak was saying.

.
No, it is not just a backup. The C:\=..... notation is just a shorthand form for C:\BOOTSECT.DOS=...... You can have several different boot-sectors-as-files on the C drive, and corresponding entries in BOOT.INI, e.g.

C:\BOOTSECT.DOS="Old MS-DOS 6.22"
C:\BOOTSECT.W98="Windows 98"
C:\BOOTSECT.DEB="Debian/GNU LInix"

There *is* a backup created named BOOTSECT.SAV (during the XP install I think, just in case the installation goes belly up, but it is removed after the installation).

Here are some NT-related articles (but they still applies to XP) on this whole, facinating subject:

http://support.microsoft.com/?kbid=101668
http://support.microsoft.com/?kbid=101787
http://support.microsoft.com/?kbid=101789
http://support.microsoft.com/?kbid=157992

And an XP article:

http://support.microsoft.com/?kbid=314079

And - an excerpt from the bible:

http://www.microsoft.com/mspress/books/sampchap/6795.asp

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 13 of 22, by guruman

User metadata
Rank Newbie
Rank
Newbie

This procedure worked for me, using the boot manager MasterBooter (www.masterbooter.com). I had a dual-booting Win2K / Win98 setup, with both O/S' seeing their root drive as C:\.

1. Install NT/2K/XP on the primary master drive; format to NTFS. THis will guarantee that the Win98 drive cannot see it.

2. Shut down and disable the primary master drive; either unplug it or do some jumper shuffling.

3. Install Win98 on the alternate drive - it will be 'C' now.

4. Restore the primary master drive.

5. Install and configure the boot utility on the primary master drive boot sector.

As was posted previously, if the Win9x installation is on the primary master, and the NT/2K/XP installation is elsewhere, you should be able to go into the drive manager and 'soft'-shuffle the drive letters to make the NTFS boot drive 'C'.

Reply 14 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

> Can't use VMWare, because the main thing I need W98 for is testing Glidos .....

Never tried Glidos, but what prevents it from running in VMware/Virtual PC/Bochs? Incomplete emulation?

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 15 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator
guruman wrote:

As was posted previously, if the Win9x installation is on the primary master, and the NT/2K/XP installation is elsewhere, you should be able to go into the drive manager and 'soft'-shuffle the drive letters to make the NTFS boot drive 'C'.

As far as I know (newer have, and hope I never will, tried it), the Drive Manager will flatly refuse to change the letter assignments of the boot/system partition. It is possible, that the Recovery Console and DiskPart will allow this, but again - never tried it. I prefer the down-to-earth-this-I-understand method of hiding partitions, and use the "natural order" of the OS to designate drive letters.

There is a KB article for Win2K, that entails manually mucking around in the registry to do so: http://support.microsoft.com/?kbid=223188. Should apply to XP also.
--
MiniMax

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 16 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Yeh, you are right: BOOTSECT.DOS is not a back up; I moved it and W98 boot complained about it. Should have known: far more sensible way to do things. It would be daft for ntldr to have built in knowledge of MSDOS.SYS and the like.

I'm pretty sure that an administrator can use Drive Manager to rename the boot partition, and there is also the regedit method, but I'm going off the idea. One thing I particularly want is the standard same-as-everyone-else
system, so renamed drives are a bad idea for me.

Think I've warmed to the primary-hiding idea, especially as Boot Master says it can do "Dynamic primary hiding". I think its exactly what I want.

Thanks for all the help folks.

Reply 17 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Master Booter looks like it will be ideal for when I build my next system, but I also have a friend with existing W98 and XP installations, which they'd like turned into a dual boot.

At the moment XP is on the master and only XP will boot. What would happen if I

1) Swapped master/slave with jumpers. (W98 then boots, I've tried it.)

2) Copied ntldr, ntdetect, boot.ini (slightly altered) from D: to C:

3) Grabbed the C: boot sector as a file C:\Bootsect.dos

4) overwrote the boot sector on C: with the one from D:

I'd like to think that I'd get an NT boot menu up reflecting the contents of boot.ini, which could then get me into W98 or XP (I'd have to do the XP drive renaming of course). But maybe the boot sector from the D: drive would have partition-architecture dependent info in it, and the whole thing would completely fail to boot.

Any ideas?

Reply 18 of 22, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Woa - go slow now. Re. your friends system - assuming you get it work with copying/changing stuff from drive to drive, how do you intend to solve the problem of drive letters? Is the Win98 installed to C:\WINDOWS or D:\WINDOWS (do a FIND /I "C:" on SYSTEM.INI and WIN.INI). If it is installed to C:, then you are fine.

And - instead of mucking around with the bootsectors, why not let the system do all the itsy-bitty-dirty work?

NOTE NOTE: This is not something I have tried and tested - this just how I hope it should work. Someone with a clean fresh disk - and lots of time - really should verify it.

0) Backup - take disk images - whatever!!!
1) Wip out your Win98 Emergency Recovery Diskette (ERD).
2) Make the Win98 the active primary.
3) Boot from the ERD.
4) Use FDISK /MBR C: on the Win98 partition (which should be C:) This will wipe all the XP related stuff from the MBR and replace it with a good, old-fashioned Win98 MBR (http://support.microsoft.com/?kbid=69013).
5) Use SYS C: to write a fresh MSDOS.SYS + COMMAND.COM to C: (should not be necessary, but it can never hurt).
6) Boot and verify that Win98 is runnable and working.
7) Shutdown.
8) Boot the XP Recovery Console.
9) Use FIXMBR to update the MBR with a new XP-aware MBR.
10) Use FIXBOOT to update the boot sector (and create BOOTSECT.DOS I assume???) with something that loads NTLDR.
You might have to manually copy NTLDR and NTDETECT.COM to C:, but I think FIXBOOT automatically copies them to the fixed disk.
11) Use BOOTCFG /REBUILD to get nice, new BOOT.INI file with entries for the old Win98 and the new WinXP installation.
12) Reboot - and have a beer!

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 19 of 22, by Glidos

User metadata
Rank l33t
Rank
l33t

Fixboot creates BOOTSECT.DOS? I wondered about that. So yes, I don't need to use any thirdparty tools and do low level stuff.

But what you say isn't quite right for my friends system. Actually, what you suggest would be perfect to recover my current system (98 on C:, XP on D: ) if ever I reck it (which I nearly did 5 minutes ago experimenting with Master Booter).

My friends system, though, is C: with XP on it, and D: with W98 on it, but W98 unusable, because it was installed at a time when that disk was master. But from what you say, I could:

1) swap master/slave, so that only W98 boots (it does I've tried it).

2) Use my bootable XP CD to get into the recover console, and use Fixboot
to make C:'s boot sector run ntldr, and create BOOTSECT.DOS, so the C:\
option in boot.ini will work.

3) Do the XP drive letter renaming thing to account for XP now being on the slave.

Last edited by Glidos on 2004-01-31, 21:41. Edited 1 time in total.