Configuring and Managing
Dual and Multi-Boot Configurations
Windows NT 4.0/Windows 2000/Windows 95/98 and Linux
Many people dream of an all-encompassing operating system, one upon which you can run all of your essential business and productivity applications, as well as use to develop applications and play any games and multimedia applications you choose. In spite of all the clamor to the contrary, Windows 2000 has come very close to reaching this goal, and we suspect that Whistler (Windows XP) will meet or exceed it.
Since none of the Windows versions provide this functionality yet, and many applications don't run well in Windows NT 4.0, as it lacks support for most popular hardware technologies such as Universal Serial Bus (USB) and APIs that Microsoft included in its Windows 95/98/ME versions, dual or multi-booting becomes necessary. While Windows 2000 has cured many of these ills, there are still many people that need to use Windows NT 4.0.
Hopefully, Windows NT 4.0 supports all your applications, but if it doesn't, you may still need to install and run more than one operating system. A classic example would be a developer or network administrator who needs to run applications under various Windows versions for compatibility testing. Regardless of the reason for your need to dual or multi-boot, having the cooperate and run correctly all on the same computer can be a challenge.
These examples are for x86-based systems only, as they load their bootstrap code directly from the hard disk, therefore they are the only systems capable of running Windows NT and DOS along with Windows 3.1, and/or Windows 95/98. None of the examples or information provided here applies to RISC-based Windows NT systems (Alpha processor based systems) as they use ARC or RISC firmware to specify the operating system boot options, rather than using a boot.ini file.
The following information will provide you with some basic guidelines to dual and multi-booting as well as some insight into the tricks and tools that you can use to manage a dual or multi-boot environment. Wherever possible, we try and use either the Windows NT or Windows 2000 Boot Loader, therefore this is where we will start our approach.
Understanding the Windows NT 4.0 NTLDR
When you install the Windows NT operating system, it sets up a Master Boot Record (MBR) specific to NT on your hard disk's primary partition. This is generally the boot partition on Drive "C", irrespective of where the actual system files are installed. When you first start a computer on which NT has been installed, NT automatically loads the MBR, then passes control to NTLDR. NTLDR then parses the boot.ini file from the root of the system boot partition and uses it to generate a list of the operating systems you may boot. You may want to review our article, Boot.ini - Controlling the Boot Process (this will open in a new window).
If you need detailed information about the Windows NT boot process, you may want to review the two articles written by Mark Russinovich, "Inside the Boot Process, Part 1", November 1998 and "Inside the Boot Process, Part 2" January 1999. These two articles cover many of the issues that even the Windows NT Resource Kit only barely explains. So, as you review some of the dual and multi-boot scenarios that are presented for you, remember that the Boot.ini file contains only those operating system boot options that NT is aware of. These typically include NT related entries, but must also include entries that point to other operating systems if the Boot Loader is to function as desired.
The boot.ini lists more than just each of the operating systems though, in addition to each NT related entry, it uses an Advanced RISC Computing (ARC) style path to describe the relative disk location for each entry. On a computer running only Windows NT, the [Operating Systems] section will list at least two entries, one for a normal boot and one for a VGA-mode startup configuration, using a plain-vanilla VGA video driver. You may also want to review our article, Understanding the Windows NT 4.0 and Windows 2000 Boot.ini File.
Your boot.ini file's operating systems section might look something like this:
If you plan on installing additional operating systems on your computer, and you intend to use the Windows NT Boot Loader to access them, the following factors influence how you must proceed:
Each of these factors are important, as every operating system has a set of supported file systems, as well as quirks and variations in the disk partition configurations that it supports. As an example, you can install Windows NT on a primary or extended partition (logical drive within an extended partition), but you can only install MS-DOS and Win95/98/ME on a primary partition. While Windows NT can handle drives that contain multiple primary partitions, these same configurations cause problems for MS-DOS and Win95/98 and ME. The following table shows the most common operating systems and the file systems and accessibility supported.
|OS Support for File Systems and Accessibility Types|
|DOS and Windows 3.1||R, W, B||----||R*,W***||----|
|Win95 OSR1||R, W, B****||----||R*,W***||R*|
|Win95 OSR2, 2.1, 2.5||R, W, B****||R, W, B||R*,W***||R*|
|Win98, SE||R, W, B||R, W, B||R*,W***||R*|
|NT 4.0||R, W, B||R, W**||R, W, B||----|
|Win 2000||R, W, B||R, W, B||R, W, B||----|
|Linux||R, W||R*||R*||R, W, B|
R = Readable
W = Writeable
B = Bootable
*Not natively supported--requires third-party software
**Systems Internals FAT32 for NT 4.0 provides read capabilities for FAT32 volumes under NT 4.0, and Winternals FAT 32 for NT 4.0 adds write capabilities
***Systems Internals NTFSDOS Tools provides limited write capabilities, and Systems Internals ERD Commander provides full write capabilities
When determining which file system to use on a particular partition, you must first consider which operating systems will require access to the data you store on it. As an example, if you store Microsoft Word and Excel documents on an NTFS formatted partition, you won't be able to access those files when you're running Windows 98. In addition, if you format a partition as FAT 32 let's say for Windows 95 (OSR 2) or Windows 98, that partition will be inaccessible to the Windows NT operating system. Systems Internals does have a Windows NT add-on that will enable NT to read and write to FAT32 volume from an NT installation.
Okay, so why not use FAT16 on all partitions in a multi-boot system?
The answer to this is relatively simple. If you were to use FAT16 across all partitions, you not only severely limit the partition size (by today's standards), but you also sacrifice disk space and performance. This is because FAT16 uses larger cluster sizes and less efficient data retrieval techniques. Unfortunately though, FAT16 might be your only alternative without some intensive planning. In one of the examples we present, Multi-Booting Windows 2000, Windows NT, Windows 98 and RedHat 6.2, we look at how you can handle this type of problem. One possibility is storing pure data, such as documents and spread sheets, in a FAT16 partition, while using a format native to the operating system for its system files.
As the table above shows, FAT16 is a common denominator across several operating systems. Therefore, this file system is usually your only choice for at least a boot partition (drive "C") for the NT Boot Loader, if not a primary system partition for an actual operating system. You can't use an NTFS formatted "C" partition in a multi-boot configuration, as should you decide to use Windows 95/98 it must reside on the primary partition of the first physical hard drive and Windows 95/98 can't reside on an NTFS formatted volume. If you use a FAT32 formatted "C" drive in a multi-boot system, the Windows NT boot loader can't be installed on to a FAT32 volume. Even if you manage to get the Boot Loader onto a FAT 32 partition, the system will simply boot to Windows 95/98.
For the purposes of this guideline, let's presume that you need at least a boot partition and it must be FAT16. If you use the Windows 95b/98 FDISK utility to create this partition, you will need to reply "No" when the utility asks you if you wish to enable large disk support, as the example below shows. Replying "Yes" to this question creates a FAT32 partition, which prevents you from using normal methods to install NT's boot loader on the system, because NT doesn't support FAT32-formatted disk volumes.
FDISK - Enable Large Disk Support
Although needing a FAT16 primary boot partition can be frustrating, you must have a partition that accommodates all operating systems that can hold just the files the various operating systems require to enable them to boot. As an example, Windows NT requires NTLDR, boot.ini, and the ntdetect.com boot manager (the NT system partition). In addition, the primary system boot partition must be large enough to contain the required boot files for each operating system that will reside on that partition.
There are alternatives for you to consider
If you decide to add Linux as one of the operating systems in your multi-boot configuration, you may be stuck with FAT16 depending on the version you have and whether you want to use a few utilities that we discuss further on in this guide. Some third party boot managers enable you to create a small primary partition with sufficient space for just the boot manager's required files. One of the better third party boot managers is PowerQuest's BootMagic, which eliminates the need for a FAT16 primary partition altogether.
Some issues to consider. The maximum partition size of a FAT16 volume is 2GB as MS-DOS and Windows 95/98 FAT16 partitions use a maximum cluster size of 32KB. When you use third party disk partitioning programs along with the Windows NT Disk Administrator utility and the Format command, they allow a maximum FAT16 partition size of 4GB by using a 64KB cluster size. If at all possible, however, you need to resist the temptation to use these tools, as while they do enable you to setup multi-boot configurations quickly, it isn't without substantial risk.
Some of these problems and risks include:
Okay, now that you have the basics, let's move on to some actual scenarios.
Dual-Booting Windows NT and Windows 95
If you're able to start with a computer that has no operating system installed, the process is quite simple, it's just a matter of installing the operating systems in the correct order, "An Order of Things", if you will. When creating a dual-boot Windows NT and Windows 95 system, the process is much less complicated if you install Windows 95 first. Windows NT easily detects the presence of Windows 95 and automatically adds an option for it in the Windows NT Boot Loader menu. In this scenario, Windows NT encapsulates the existing MS-DOS 7.0 (Windows 95) boot sector into a special file called bootsect.dos. Windows NT uses this file as its custom boot sector, which it loads when you select the newly created Microsoft Windows option from the Boot Loader menu. A similar process will occur if you were to install Windows NT over an existing MS-DOS 6.22 installation, except that the MS-DOS 6.22 and Windows 95 boot sectors differ slightly. If you want to review a more complicated multi-booting scenario involving Windows NT, Windows 2000, Windows 95/98, Linux, and DOS, see "Multi-Booting Windows 2000, Windows NT, Windows 98 and RedHat 6.2".
The complexity occurs if you install Windows NT first, or it's already installed, and you intend to add Windows 95. The best advice we can give you is to do two things before doing anything else, First, create a Windows NT Emergency Repair Disk. Second, create your Windows NT Setup Disks. When adding Windows 95 to an existing Windows NT installation, you will need to boot to an MS-DOS or Windows 95 boot disk to launch the Windows 95 setup program. If you use the original retail or first version of Windows 95 or the early OEM version OSR2.0, be prepared for the Windows 95 setup process to hose your Windows NT boot loader. None of these early Windows 95 versions recognize the Windows NT boot sector and boot loader, and they overwrite the NT boot sector with their own boot information.
If you experience this problem, follow these instructions:
To restore access to the boot loader, use either your repair disk (ERD) or your setup disks. If you're using the setup disks, during the setup process, select the Recovery option (or use your Emergency Repair Disk--ERD), select only the option to inspect the boot sector, and let Windows NT repair the boot sector. After the process finishes, your original NT boot sector and the boot loader will be repaired and the boot loader will reappear at startup.
In addition to the normal precautions you need to keep in mind, some Windows 95 OSR2 versions will cause the system to hang during successive boots when you select the "Boot Previous Operating System" option during startup e.g. pressing F4. You can remedy this problem by booting to a Windows 95 Emergency Repair Disk (ERD) and using the Sys C: command. Note: If your system is also running Windows NT, this solution will overwrite the Windows NT boot sector and prevent the boot loader from appearing.
As a final note, if you're using the original version of Windows 95 and you find that you can't boot to MS-DOS, open Notepad and then open your MSDOS.SYS file and try adding the following line to the [Options] section.
Be sure you are in Windows 95 when you edit this file to ensure that you're editing the correct file!
Dual-Booting Windows NT and Windows 98
Although multi-booting Windows 98 with Windows NT is considerably smoother than Windows 95, you must still use FAT16 on the primary boot partition of the first physical hard disk. Windows 98 is far more intuitive than Windows 95 when installed in an existing NT environment. Actually, Windows 98 is far better at handling the integration of the two operating systems than Windows NT was. During testing (and retesting) regardless of which operating system was installed first, the net result was a functional multi-boot installation of both operating systems. Oddly enough, when Windows 98 was installed over Windows NT, Windows 98 displayed a correctly labeled Microsoft Windows 98 option in Windows NT boot.ini. On the other hand, when Windows NT was installed over Windows 98, Windows NT created a bland entry name "Microsoft Windows".
The Windows NT and Windows 98 multi-boot configuration was, for the large part, a straightforward configuration installation, however during testing we did come across an oddity. When you install Windows NT over a Windows 98 installation that had been previously upgraded from Windows 95 and you uninstall Windows 98, the uninstall procedure deletes the boot.ini file, which then prevents the Windows NT boot loader from functioning. In the event this happens to you, you will need to use your Emergency Repair Disk or the Windows NT Setup Disks to recreate or restore the file. We also noted that when you uninstall an original Windows 98 installation, the uninstall procedure deletes the Windows 98 bootsect.dos file.
As a safeguard in case you get into a bind, in addition to a Windows NT Emergency Repair Disk and Setup Disks, if plan on dual or multi-booting Windows 98, you may want to use the Add/Remove Programs applet in Control Panel to create a Windows 98 startup disk after setup. This disk is an invaluable troubleshooting and recovery tool for Windows 98. Unlike Windows 95 startup disks, Windows 98 startup disks contain a built-in CD-ROM driver that works with most CD-ROM drives on the market, thus no more creating custom disks with support for your SCSI or IDE CD-ROM drives. After your dual or multi-boot configuration is up and running, you may want to create a bootable MS-DOS floppy disk and transfer these files to it: NTLDR, boot.ini, and the ntdetect.com boot manager. In the event you destroy any one of them, you can quickly restore them from the floppy.
Dual-Booting Windows NT and Linux
There's no question that Linux is growing in popularity and that popularity is creating a new generation of users who want to run their favorite version Linux right along with Windows NT. The Linux Boot Loader, LILO, handles all of Linux's boot management. Although there are various tricks you can use to make LILO boot to the Windows NT boot loader, most of your time will be spent recovering from problems rather than using the system. Many Linux users who create Linux and Windows NT multi-boot systems use a third party management utility such as BootMagic or a LILO option in Windows NT boot loader.
First, Install Windows NT, if it's not already installed. Now, to create Windows NT and Linux multi-boot configuration, install Linux on the FAT16 partition of your choice and install LILO in the first sector of the Linux partition (the superblock - see you Linux documentation) rather than in the MBR. If you load LILO into the MBR, you'll overwrite the Windows NT boot sector and disable the boot loader. After you install LILO, you will need to create a link between it and the Windows NT boot loader menu by creating a Linux boot sector file. Linux users call this file bootsect.lnx, but Windows NT and Linux don't require that name. You then add a reference to this file in the boot.ini file. Your Windows NT and Linux dual-boot system's boot.ini [Operating Systems] section might look like this:
Keep in mind that you can use the Linux's "dd" utility or a similar utility to create a Linux boot sector file, then manually add the boot sector file to boot.ini. A far simpler method, however is to use BootPart 2.20, a utility that creates the boot sector file and automatically adds the entry to boot.ini. For more information about the BootPart utility, see "BootPart 2.20: Boot Partition for WinNT".
Does this scenario sound familiar?
You have checked everything and thought it through. You made certain that your test PC was Windows® 2000 compliant, then you put two partitions on the hard drive so that you could install Microsoft's Windows® 2000 Professional and then Linux on the same machine. Everything is going according to plan and Windows® 2000 is up and running just great.
Next, you took your copy of Red Hat Linux and installed it on that special partition you created for it. Everything was was going so smoothly that when you got to the point in the installation where you were asked where to put LILO, the Linux loader, you just clicked through, allowing it to be put in the default partition and on the master boot record of the machine.
Here you are, already to give your new setup a test run, but when you reboot the machine after the Linux install, you find that you have no way to get to Windows 2000. That pretty graphic list shows up perfectly, however the only choice is Linux. Oh Oh!
If this Linux/Windows 2000 Dual-Boot scenario sounds familiar to you, click here for a solution.
Download BootPart 2.20 (25k)
Download BootPart 2.20 (25k) (alternate server)
Note: Each time you modify the boot sector of a Linux partition, you must create a new copy of bootsect.lnx. If you plan on implementing a dual-boot Windows NT and Linux system, we heartily recommend that you read as many Linux related dual and multi-boot resources as you can find.
Third-Party Boot Managers
Although it should be obvious to you by now that, even though all of the scenarios provided here involved dual-booting, you can also use the Windows NT boot loader to create multi-boot scenarios involving several operating systems installed over several partitions. And while the Boot Loader is quite useful for dual and multi-booting projects, it isn't the most capable tool for managing your multi-boot environments. To maximize your flexibility when you install and manage multiple operating systems, you may want to consider using a third party boot management utility such a BootMagic from PowerQuest. We don't have any financial ties with, or financial interest in, PowerQuest. Simply put, they have some tools that work! These utilities allow greater flexibility and manageability and will save you allot of time better spent doing something else.
In any event, most of the better boot managers have the following capabilities:
Just the ability alone to hide selected partitions makes the software cost worth it, as it lets you conceal primary partitions that inhabit the same drive as a primary partition that contains the operating system you are booting. The presence of multiple primary partitions on one drive is a major multi-boot dilemma for MS-DOS and Windows 95/98, and can result in data loss and boot failures. Hiding partitions lets you control how the system assigns drive letters and lets you maintain consistent drive letter assignments throughout different operating systems.
NT and Win9x Resource Sharing
We are often asked about dual and multi-boot configurations for Windows NT and Windows 95/98 that will allow for the sharing of certain resources, such as application installation directories and files. Unfortunately the two operating systems can't share their Registry entries and therefore can't share Registry entries that are application specific because each is inaccessible to the other. While you can share a directory or partition usable by all of the operating systems you plan on installing and use it for a shared application, but this isn't without potential problems. You will need to ensure that the application creates the proper Registry entries and local support files for each operating system by installing the application twice, once under each operating system. While you would benefit from a shared directory by having only a single instance of the application, as well as conserve the disk space that an application installed in separate folders or partitions would waste, however if the application installs operating system specific files, such as DLL files etcetera, you could invariably experience some sudden unexplained crashes. We did!
If you choose to share a partition, it must be formatted as FAT16, because FAT16 is the only file system that both Windows NT 4.0 and Windows 95/98 uniformly support for reading and writing. As we mentioned previously, this scenario can and does work, however a particular application might react negatively to such an installation, which can result in a inoperative installation and/or a loss of application data. Whenever you try something that has not been thoroughly tested, always back up an application as well as operating systems partition, including the Registry. You may also want to note the fact that any Registry related user options that you change under one operating system won't be available in the other operating system. You will need to to manually synchronize any changes under each operating system.
Uninstalling an application adds to the potential hazards of this practice. You can only uninstall an application and its Registry entries once! One of the operating systems will have a problem immediately after the uninstall, as the application is no longer available. This inability to remove an applications Registry entries can result in a bloated and error filled Registry, ghost Add/Remove Program entries, and a loss of functionality in the dual-booting operating systems. If there was any way to accomplish this without the potential headaches, we would be one of the first to show you how. Unfortunately though, our recommendation is that you should maintain a separate installation of an application for each operating system. The easiest way to keep applications separate is to put program files on two partitions, one for each operating system. While this practice uses more disk space, it creates a clean and stable system configuration.
Now here's a resource you can share
While it is true that there is very little by way of resources that can be shared between Windows NT and Windows 95/98, one not so obvious resource that you can share is the paging file. Both Windows NT and Windows 95/98 use a paging or swap file as virtual memory. You can configure Windows 95/98 to use the Windows NT paging file, however to do so the paging file must be on a FAT16 partition that is accessible to both operating systems.
Here are the steps to configure Windows NT and Windows 95/98 to share a paging file:
PagingFile=<x>:\pagefile.sys PagingDrive=<x>: MinPagingFileSize=<n> MaxPagingFileSize=<n>
in which x is the drive letter of the partition that contains the shared paging file, and n is the size of the paging file in kilobytes. After editing, save the file and close SYSEDIT.
If you change the size of the shared paging file in Windows NT, you will need to immediately edit the Windows 95/98 system.ini file and make the appropriate adjustments.
As you can see, one of the most important steps in creating a successful dual or multi-boot scenario is to carefully plan your partition and file system layouts.
Naming Conventions for Dual and Multi-Booting Windows NT and Windows 2000
All to frequently we are asked why dual and multi-boot configurations of Windows NT (all versions) don't quite work as they should, especially when networks, and especially domain servers, are involved. Often this problem is due to the fact that both NT installation have the same name. This causes a problem for the SID. Easy enough, just give them separate names!
Notice: Windows® 95, Windows® 98, Windows® NT, Windows® 2000 and
Microsoft® Office are registered trademarks or trademarks of the Microsoft Corporation.
Copyright ©1995-2001 DEW Associates Corporation. All rights reserved.