It is possible to boot directly into each of the three operating systems using the Windows NT 4.0 or 3.51 boot loader (note that this procedure will not work with NT versions prior to 3.51). Specifically, one can boot directly into DOS, without going through Win95, from the NT multiboot menu. The two required conditions to do this are:
The information contained herein is derived in part from the Microsoft 95WRK.HLP file supplied on the Win95 final beta CD, modified for post-installation operation (the relevant page is titled, "Installing Windows 95 for Dual Booting with Windows NT").
Note: These instructions assume that you have already installed NT, Win95, and DOS on your system, that all three successfully boot from the NT boot loader menu (DOS is booted by booting Win95 and selecting "Previous version of MS-DOS" from the Win95 boot loader menu), and that you now want to modify the NT boot loader menu to be able to boot DOS without first booting Win95. These instructions are not specifically intended as a guide to installing these operating systems, although much of the information will be useful.
Note also: The OSR2 version of Windows 95 is not intended for use on a system with DOS; it is intended to be installed on new systems instead of DOS. Therefore, it does not support booting to the "Previous version of MS-DOS" (although this option may still be enabled and used, it will crash your system if you attempt to use it -- see Microsoft KnowledgeBase article Q155364, titled "OSR2 Hangs After Booting Previous Operating System", for details).
Depending on your installation requirements, you may find the following additional articles of use:
An alternate and more automatic method of creating the boot sector files needed to boot multiple operating systems uses a program called BOOTPART by Gilles Vollant. See his BOOTPART page for details on this program (and please send all BOOTPART questions to Gilles -- I have never used the program).
I have NT 4.0 Workstation, NT 3.51 Workstation, Win95, and DOS 6.22 (with WFW 3.11, though this does not matter). As I have been upgrading each system as it was released, I first installed DOS, then NT 3.51, then Win95, then NT 4.0 (in that order).
My primary (bootable) partition is the first partition of the first hard drive (this is drive C:) which is FAT16. I have each system on a separate partition, though this is not required -- it is just easier if I need to wipe out a system and start again.
Drive C: therefore contains all of the startup files for all operating systems. A listing of all files (including hidden files) should contain at least the following NT system startup files:
...plus the following files if DOS was booted more recently than Win95:
Or the following files if Win95 was booted more recently than DOS:
I installed each operating system to a separate directory.
When you are done, and you reboot, you will get the NT boot loader menu (that starts out at the top of the screen with "OS Loader V4.0") with (at least) these choices:
and when you select a choice, you will then see one of the following messages at the top of the screen (depending on which system you select):
The steps needed to implement direct boot are:
(The following procedure can be used from any of the available systems; I used NT.)
To get the "correct" system files (with the correct names), edit the BOOT.INI file (hidden and read-only) present in the root of C:. You should have lines something like the following:
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(1)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(1)partition(1)\WINNT="Windows NT Version 4.0" c:\bootsect.dos="Windows 95"
Edit the "c:\bootsect.dos" line and add a new line following it, as follows:
Before Editing After Editing ---------------------------- -------------------------------------- c:\bootsect.dos="Windows 95" c:\bootsect.w40="Windows 95" /WIN95 (new line) c:\bootsect.dos="MS-DOS 6.22" /WIN95DOS
The /WIN95 and /WIN95DOS switches cause NTLDR to rename the DOS and Win95 system files back and forth so that the "correct" names are used with the operating system selected. (If you have not noticed before, look at the hidden files in the root of C: when running DOS and Win95. Under Win95, the DOS files are renamed IO.DOS and MSDOS.DOS; under DOS, the Win95 files are renamed WINBOOT.SYS and MSDOS.W40; IO.SYS and MSDOS.SYS always belong to the "current" operating system.)
Note that the /WIN95 and /WIN95DOS switches are only recognized by NTLDR versions 3.51 and later. The NTLDR from versions 3.5 and earlier won't recognize these switches, so the renaming won't take place.
You have also requested that Windows 95 be booted using the boot sector in the file BOOTSECT.W40, while DOS is booted using BOOTSECT.DOS. However, after your Win95 installation, BOOTSECT.DOS contains the Win95 boot sector, not the DOS boot sector. Therefore, rename BOOTSECT.DOS to BOOTSECT.W40.
Now you need a BOOTSECT.DOS that contains a DOS boot sector. Fortunately, NT will make one for you. Unfortunately, you have to go through about 10 minutes of the setup program for it to generate the BOOTSECT.DOS (which takes about 1 second).
Here's how (from the Microsoft KnowledgeBase articles Q102793 and Q104429):
NOTE: BE SURE YOU HAVE A BOOTABLE "NT SETUP DISK 1" BEFORE STARTING! AFTER EXECUTING "SYS" AND BEFORE BOOTING SETUP, NT CANNOT BE BOOTED!
That is it! You should now be able to boot directly into DOS, Win95, or NT from the multiboot menu.
Important note: Step 1 above depends on a feature of the "upgrade" version of Win95 (i.e., the version that upgrades a DOS installation to a Win95 installation). Microsoft has also released several "new system" versions (for installation on systems that never had DOS) -- OSR2 falls into this category, as do some OEM versions of Win95. In these latter versions, Microsoft removed the capability to boot to the previous version of DOS, as they assumed there was no previous version (otherwise, you would have bought the "upgrade" version).
Although the instructions above assume that you have the "upgrade" version of Win95 on your system, they can be made to work with "new system" versions. In lieu of Step 1 above, boot from a DOS diskette and manually rename the following Win95 files in C:\ on your hard disk:
|rename IO.SYS||to WINBOOT.SYS|
|rename MSDOS.SYS||to MSDOS.W40|
|rename COMMAND.COM||to COMMAND.W40 (if present in C:\)|
|rename AUTOEXEC.BAT||to AUTOEXEC.W40 (if present in C:\)|
|rename CONFIG.SYS||to CONFIG.W40 (if present in C:\)|
This will put your system in the same configuration as would booting to DOS via Win95 in the "upgrade" version of Win95. Then continue to follow Steps 2-8 above.
When you start the system, the first sector of the active disk partition is loaded into memory and executed. This sector is called the "boot sector" and is physically located "outside" of the FAT file system on drive C: (for a more comprehensive discussion, see the Microsoft KnowledgeBase article Q101787, "General Information on Starting Multiple Operating Systems"). If you can boot NT, then the boot sector is the "NT boot sector", which loads and runs the program NTLDR, which presents the multiboot menu.
When DOS was installed, it put its own boot sector in that loads IO.SYS.
When NT was installed, it overwrote DOS's boot sector with its own (the NT boot sector) after copying the DOS boot sector to a file called BOOTSECT.DOS in the root of C:. When you selected "MS-DOS" from the NT boot menu, NTLDR would run BOOTSECT.DOS, which would load IO.SYS, and DOS would boot.
When Win95 was installed, it left the NT boot sector in place, but overwrote BOOTSECT.DOS with its own boot sector (the "Win95 boot sector") which also loads IO.SYS. Win95 also wants to install its own IO.SYS and MSDOS.SYS, which conflicts with the DOS versions. So it renames DOS's IO.SYS and MSDOS.SYS to IO.DOS and MSDOS.DOS.
Since DOS and Win95 each expect their system files to be *.SYS, their respective IO.SYS and MSDOS.SYS files must be renamed back and forth as the two systems are booted. Therefore:
(Why Win95 renames its IO.SYS to WINBOOT.SYS instead of IO.W40, I do not know).
The Win95 IO.SYS will perform this renaming when you select "Previous version of MS-DOS" but uses an internal loader to perform the equivalent actions of the DOS boot sector.
NTLDR will also perform the renaming (with the /WIN95 and /WIN95DOS switches) but still needs an external BOOTSECT file to boot DOS.
You can verify which boot sectors are in which file by examining the files with a hex dump program (or use the NT command "debug"). Look at the first few bytes and also at the last few bytes for the following strings:
First bytes Last bytes Boots Which Operating System -------------------- -------------------- ---------------------------- MSDOS5.0 IO SYSMSDOS SYS DOS MSDOS5.0 NTLDR NT MSWIN4.0 WINBOOT SYS Win95
Important note: You must create system boot sectors on the partitions on which they will be used. In general, you cannot simply copy a BOOTSECT.DOS file from another installation, because the boot sector contains an internal table (used to locate the root directory) that describes the physical layout of the drive and partition on which it was created (i.e., the number of heads, the number of sectors per track, the location of the partition in sectors from the start of the drive, the size of the File Allocation Table, etc.). This physical information will not, in general, be correct unless you are copying it from a system with an identical partitioning layout on an identical hard drive (not just the same capacity, but the same number of cylinders, heads, and sectors per track).
I have run through this script on my system, and it works. However, I have not tested it on any other configuration. Also, I may not have thought of every contingency. That is why you made backup files!
Note that I have never used OS/2 or Linux, so I regret that I cannot offer advice or a way to integrate these operating systems into the direct boot process. BOOTPART by Gilles Vollant may help (remember to send all BOOTPART questions to Gilles -- I have never used the program).
Copyright © 1998 Palomar Corporation. All rights reserved. While links to this article are welcome, reproduction of this article, either in print or on the World Wide Web, is expressly prohibited without prior approval from the author.
Page last updated July 02, 2008.