In my last Daily Drill Down on the subject of multibooting in Windows 2000, I looked at how to plan partitions and file systems for a multiboot. In this Daily Drill Down, I will look at the order you should install programs and different symptoms and solutions to reduce multiboot hassles.
Many sets of multiboot how-tos for using the Windows 2000/NT boot loader exist on the Web. The problem, I’ve found, is that these instructions don’t list a lot of gotchas. Rather than being another guide, this series is designed to help you plan, avoid, and recover from multiboot mishaps.
Setting the best order for installing your operating systems depends on how aware operating systems are of their brethren and what they do with that awareness. The wrong installation order can foil all your efforts at worst and cause you to do extra work repairing installations at best. Here’s the safest boot order for installing multiboots. I assume your goal is to have all your operating systems boot from the Windows 2000 boot loader, as shown in Figure A.
|Your goal is to force all your operating systems to boot from the Windows 2000 loader.|
DOS isn’t aware of anything except itself. Therefore, install DOS first. Install it in a small FAT16 partition you created just to hold DOS and the boot files of all your operating systems. This will be the first partition on the first drive, a.k.a. your C:\ drive (or hda1 in Linux terminology). DOS system files must be within the first 2 GB of your hard disk, which is all the more reason to install it first.
- Windows 9x and Me
According to some of the literature, both Windows 98 and Me are aware of DOS and Windows NT, so theoretically they can be installed either before or after you install NT/2000. I’ve found results to be inconsistent, however. Sometimes Me and 98 wipe out the NT boot code. Therefore, install these operating systems before NT and install them in their own partitions. Windows 95 and Windows 98 use the same boot file, making it impossible to install both on the same machine, so you’ll have to pick one. Also note that Windows 9x and Me may replace selected files in your MS-DOS directory with newer ones, as the installation upgrades DOS as well.
- Windows NT 4.0
Setup in Windows NT and Windows 2000 is aware of previous installations of Windows NT, DOS, Windows 9x, and Windows Me (but not Linux). When you install Windows NT, it extracts the boot code of Windows 9x/Me from the MBR, names it C:\Bootsect.dos, and saves it as a file on the first partition of the first hard drive, before replacing it with its own boot code. Then it adds a line to Boot.ini that points to this code, making a dual-boot system. Because neither NT nor 2000 recognizes Linux code, if Linux is installed first, and its boot code is placed in the MBR, NT/2000 will overwrite the MBR and Linux will become unbootable. Conspiracy?
- Windows 2000
Windows 2000 uses a later version of NTFS (version 5) than NT and changes all NTFS volumes it sees to this later version. Since NT needs to have Service Pack 4 or later applied in order to work with NTFS 5, and since you can’t apply a service pack until after installation, Windows NT has to be set up first. Have Service Pack 6a ready, and as soon as you get your NT up and running, apply it.
The order of Linux installations isn’t critical, but I’ve saved it for last because Microsoft gives you enough to worry about. You must remember one thing: Do not place Linux in the MBR. Doing so will wipe out your Windows NT/2000 boot code. You can probably get it back by using a Repair setup, but then you’ll lose your Linux boot code. Save yourself the aggravation—do a custom Linux setup and make sure you tell Linux setup to place its boot loader (called Lilo, for Linux Loader) on the boot sector of the partition you’ve mounted as /boot. That partition will not be hda1, which will be your C:\ drive.
Multiboot symptoms and solutions
As you’ve gathered, it can be vexing to set up a multiboot using the Windows 2000 boot loader. In the next section of this Daily Drill Down, I cover some of the more common problems that occur. I’ve reinforced some of the points made in this and my previous Daily Drill Down on this topic: “The essential Windows 2000 multiboot troubleshooter: Planning partitions and file systems.”
Windows 9x and Me
Windows NT has the ability to create 4 GB partitions using a FAT16 file system. To do it, it uses a wasteful 64 KB allocation unit. However, Windows 9x can’t read FAT16 partitions greater than 2 GB, using a 32 KB allocation unit. Fdisk won’t be able to help you here. PartitionMagic may be able to reformat that partition into FAT32 for you. You may be able to wipe the disk in Windows NT’s disk manager, then boot into DOS and use Fdisk to format a Windows 9x/Me partition.
If you want Windows NT to be able to read your Windows 9x partition, you’re going to need to use FAT16. FAT16 partitions are limited to 2 GB, however.
This can occur for a variety of reasons, one being that you used Windows NT or Windows 2000 disk management tools to resize or change 9x/Me partitions. If you changed the FAT16 file format to NTFS, this also will render your Windows 9x/Me operating systems useless.
Windows NT needs to be installed before 2000 due to NTFS incompatibility. Your error message may be similar to the following:
STOP: 0x0000007B (0x8881Ae30, 0x00000000, 0x00000000, 0x00000000)
See the next symptom/solution.
Did you immediately, upon installing NT, upgrade to Service Pack 4 or later? (6a is the latest.) The Windows 2000 NTFS 5 file system is not compatible with the version of NTFS used by Windows NT. In order for NT to be able to read or write to NTFS 5, it needs the Ntfs.sys driver first included in Service Pack 4. This wouldn’t be a problem if Windows 2000, upon installation, didn’t convert all NTFS partitions to its version, even though Windows NT might have been installed on one of those partitions. For more information, see Microsoft Knowledge Base article Q184299.
By the way, take note of this hitch: Once you dual-boot Windows 2000 and Windows NT with both partitions using NTFS 5, you can’t repair that NT installation. This is because once the file system has been changed to NTFS 5, NT Setup can no longer recognize it! You can reinstall NT, but you’ll need PartitionMagic or another advanced tool that can recognize that partition and reformat it as FAT16.
In addition to the reasons mentioned above, it’s possible that somewhere along the way you converted your C:\ drive to FAT32. While Windows 2000 can work with FAT32, Windows NT can’t. If this is true, your Linux installation won’t boot, either.
You installed Windows 98 or Me after Windows NT, and now NT won’t boot. Running Setup and choosing the Repair or R option will most likely fix this. If it doesn’t erase the Windows 98 or Me boot code, you’re in good shape.
In addition to the NTFS compatibility problems given above, another cause for this message might be a corruption or change in the partition table on the MBR. You may have used PartitionMagic or another disk partitioning program to repair or write to the partition table. The partition table includes flags for types of file systems. Different programs use different flags, which might not be understood by all operating systems. Or, a corrupt partition table might show partition overlaps, which are potentially dangerous, if true. Sometimes, though, they are imaginary, based on slightly different ways of calculating disk geometry or errors in partitioning programs. In any case, if Windows NT can’t recognize the partition table, it won’t be able to boot. For these reasons, I recommend using only one disk management program, and I recommend PartitionMagic by PowerQuest.
Note that using FDISK /mbr will not fix this problem. The /mbr switch only rewrites the boot information, not the partition table. In this case, your only option might be to start over.
Alternatively, you may have changed the file format of the drives containing Windows NT or the boot code, or you might have run Windows 2000 disk tools on your Windows NT drive. Another possibility is that you moved the partition containing Windows NT beyond the 8 GB boundary. Windows NT must have its boot code on a partition within the first 8 GB of your hard drive.
Most likely, the partitioning software you used wrote the partition table in a way that is unrecognizable by Windows NT Setup. This is probably due to the way the software flagged file types. See the above tip.
Windows NT Setup contains two parts: a text setup and a graphical setup. During the text phase, it relies on the BIOS for disk information. Unfortunately, the BIOS limit for reading disks is approximately 8 GB. This is called the 1024 cylinder limit, despite the fact that 8 GB is really beyond 1024 cylinders.
Avoid this problem by installing Windows 2000 after 9x/Me. Otherwise, run Setup and choose the Repair option to restore the Windows 2000 boot loader.
Woops! You forgot to tell Linux not to put Lilo (or your Linux flavor’s alternative boot loader) in the MBR. Depending on how wise your Linux setup program was, you may be able to use Lilo to boot into all your operating systems. If not, run a repair setup of NT to restore the boot program. You may have to reinstall Linux.
Linux boot problems
One common problem is that you didn’t extract the Linux boot code correctly. Try again. TechProGuild editor Jack Wallen gives instructions in his Daily Drill Down, “The dual-booting mystery unraveled.”
You may have extracted the boot code correctly, but referenced it incorrectly in your boot.ini file. A typical entry in boot.ini for Linux reads, C:\Bootsect.lnx=”RedHat 6.2.” Double-check the spelling of your boot code file and the syntax of your boot.ini entry. You might also check to see if you in fact copied your Linux boot code to the C drive.
Finally, your C:\ partition may be formatted with a file system Linux can’t read. Your safest bet is to use FAT16, though some distributions may recognize FAT32.
You could have extracted an incorrect or corrupt Lilo, but the most likely scenario is that you’re trying to boot to a Linux /boot partition located outside the 1024 cylinder limit of 8 GB. If you have PartitionMagic or a similar disk maintenance utility, you might try moving the partition. This might cause your current Linux installation to become unbootable, requiring a reinstall. If you can live with using a boot disk, continue to boot from it.
If you were able to boot into your other operating systems before, then something has happened to their boot files, or to your partition table. But, you may have accidentally overwritten the Windows 2000 boot loader with Linux. That will occur if you forgot to tell Linux to install Lilo into the partition mounted as /boot or if you mounted /boot as your C:\ drive. Perhaps you reformatted this partition using the Linux Ext file system? In that case, your other operating systems can’t read the boot code.
Keeping up with changes to operating systems and multiboot schemes is a never-ending process. In this Daily Drill Down, I’ve covered common solutions to problems with creating a multiboot system using the Windows 2000 boot loader. If you have any multiboot gotchas and tips you’d like to share, please let me know.
The authors and editors have taken care in preparation of the content contained herein but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.