Understanding MultiBooting
and Booting Windows from an Extended Partition

by Dan Goodell
Introduction Partitions The MBR Principles Tools Imaging Restoring Partition Table Win98 LBA Boot.ini Partition Sigs Boot Mgr Appendix
Introduction

A personal computer normally has one operating system (OS) installed, such as MS-DOS, Windows 95, Windows XP, etc. "Multibooting" is the process of installing more than one OS on a computer and selecting at startup which OS to use. Selection of the OS is made through a boot loader or boot manager when the computer first starts up, and then the selected OS boots up normally.

The purpose of this document is to help you understand the inner workings of the multiboot process. It is not a "HOW-TO" guide with step-by-step instructions you can blindly follow without understanding what you are doing. It is certainly possible to install a multibooting setup without understanding all this (and many people have successfully done so), but the information provided here is intended for the user who likes to understand how things work. To find step-by-step instructions elsewhere on the web, search google or yahoo with search terms like "dual-boot" or "multibooting", or see the links section for some selected multiboot scenarios.

There are many ways of installing a multiboot configuration. Some--notably, the boot loader Microsoft includes with Windows NT/2000/XP systems--make multiple operating systems boot through a common boot partition. Third-party boot managers, in contrast, typically keep OS partitions completely separate and boot each OS completely from its own partition. A few sophisticated third-party solutions may make use of proprietary disk partition tables. This abnormal approach may permit you to create lots of partitions and install lots of concurrent OS's, but it comes at the expense of compatibility with other common disk utilities such as fdisk, PartitionMagic, Norton Utilities, Ghost, DriveImage, TrueImage, et al. Proprietary partition handling effectively "puts all your eggs in one basket"--if the boot manager fails, you're in trouble because no other disk utilities will work. To understand the ramifications of these various approaches, we first need a little background.

Background - Sectors, Partitions, and LBA
A background in how hard disks are organized into partitions is important. Detailed information is available in numerous books and elsewhere on the internet, but this section covers the key elements we need to understand.

Background - The Boot Process
A background in the boot process is helpful, especially to understand how the boot loader that comes with Windows 2000/XP is different.

Background - Multibooting Principles
Techniques for booting more than one OS generally fall into one of two broad categories: the Microsoft way and everyone else's way. The two methods use incompatible concepts and cannot simply be substituted for each other. This section explains what we need to know about the differences.

Project: Multibooting Windows from an Extended Partition
This exercise illustrates one method of installing multiple operating systems on a single hard disk, each of which can be booted independently from the others. It is not my intent to give you step-by-step details of exactly how to install specific OS's, but rather to provide the broader view of how everything fits together. I'm not here to say "do it this way," but rather to help you understand the concepts underlying multibooting. It's the concept that is the point here, the actual tools and OS's shown here are secondary to the purpose of this exercise. I'm assuming a certain level of technical background here, but if you're at least semi-techie you should be able to follow what's going on. (See the links section for some links to specific step-by-step installation examples elsewhere.)

The subject for this exercise will be a single 40 GB hard drive on which we will install five operating systems and two supplemental partitions for data. We will subdivide our drive with the following partitions:

     0.1 GB   Pri-1   FAT16 (DOS)  
       3 GB   Pri-2   FAT32 (Win98)
       6 GB   Pri-3   NTFS  (WinXP)
      28 GB   Pri-4   Extended partition containing:             
                       6 GB   Logical-1   NTFS  (Win2000)        
                       3 GB   Logical-2   FAT32 (another Win98)  
                       3 GB   Logical-3   FAT32 (My Data)        
                      16 GB   Logical-4   FAT32 (Backups)        
                                                                 
When we boot any one of the operating systems we want all other OS partitions to be hidden, but want the two data partitions to remain visible. Our data files can then be accessed regardless of which OS we boot into. Hiding a partition means it is ignored while another OS is booted--it will not be assigned a drive letter, and files on it will not be accessible. Partitions can be marked hidden via the hard disk's partition table(s), but a boot manager can alter those according to our preferences--we'll use our boot manager to control which partitions are hidden. By configuring the boot manager to selectively hide partitions, we can make our bootup options look like this:

  Boot option->     DOS      Win98    Win2000    WinXP     Alt98

      Pri-1:         C:      hidden    hidden    hidden    hidden
      Pri-2:       hidden      C:      hidden    hidden    hidden
      Pri-3:       hidden    hidden    hidden      C:      hidden
      Log-1:       hidden    hidden      C:      hidden    hidden
      Log-2:       hidden    hidden    hidden    hidden      C:  
      Log-3:         D:        D:        D:        D:        D:  
      Log-4:         E:        E:        E:        E:        E:  
Limiting the number of OS's would make for a less complex multiboot setup, but part of the purpose here is to explore how to install OS's in an extended partition and how to hide logical volumes that are in the extended partition. If you can follow how all of this works with a complex example, you'll be better prepared to make adjustments and choices for your computer and the tools you have available. This project includes only Microsoft OS's. It may not be hard to include Linux in the plan, but I haven't tried it so can't comment further. We'll use a mix of FAT32 and NTFS partitions just to prove we can.

Our objective is to keep all OS's completely independent from one another. No fair installing two OS's in separate directories of the same partition (they'll share some files and won't keep one OS from touching the other's files), and no fair using the native boot loader (ntldr) in Windows 2000 or XP to control multibooting (they're not independent because they rely on the same boot partition). Ideally, we want to be able to backup and restore each partition independently, and with neither reliance on, nor interference with, any other partition or OS. In addition, if we avoid resorting to the proprietary partition tables employed by some boot managers, we can still get at things with common disk management tools when we need to.

Overview of the Project Plan
An easy way of installing multiple OS's is to install the first one, hide its partition, install the second, hide it, and so forth. The partitions will be selectively unhidden for booting by the boot manager. This works fine for simple dual-boot or triple-boot systems where all OS's can be installed in primary partitions, but another method must be used if we want to install any Microsoft OS in a logical partition. For that, we need to install the OS in a primary partition and then relocate it intact to the logical partition.

The general plan I'll use here will be to install each operating system as a solitary OS, make an image of it, wipe it out, and repeat until we have images of each OS as a standalone system. Once the images are created we will put them all together, modular fashion, by creating the finished partitions of the desired sizes and then restoring the OS's where we want them. Lastly, we'll plug in the boot manager to tie them all together. This isn't the only way (or even a very efficient way) to install a multiboot system, but it does guarantee each OS can stand on its own independently of all others, and makes it easy to focus our attention on how the pieces fit together without getting distracted by differences in installation routines. Whether or not you plan to make backup images or erase a pre-installed OS is not important--stay with me here: it's the theory we're after.

Useful Tools and Utilities
We will use a number of utilities in the course of this project, but I do not mean to suggest you need to use the same tools. I'll use these tools because they simplify the tasks at hand and leave us to focus on the underlying concept of what we're doing rather than how we're doing it.

Creating an Image of Each OS Installation
Let's get to work. Install each OS alone and save a backup image of it. Clear the working partition between installations. We'll put them all together in the next step, but for now we're just making sure each installation gets properly configured with its system partition as drive C: and is not interfered with by other existing OS's. The order we create the OS images is not relevant (they're supposed to be independent, remember?), but if we leave DOS for last we can save a step and just leave it installed when we're done. DOS will also be the partition into which we will install the boot manager later.

Putting Everything In Its Place
Once we have all the OS images we restore them, modular fashion, so they are all in place at the same time. Before some OS's may boot, though, we may need to make a few tweaks.

Fixing Boot Records in Logical Partitions
A logical volume in the extended primary partition does not usually contain an operating system, and there is not normally a boot record there. (Okay, maybe there's technically a "boot sector", but it's normally blank unless we put an OS there.) If we put an OS and boot record there we need to check the boot record to make sure it knows where to find itself. Petr Soucek has documented that a key parameter in the partition boot sector may prevent an OS from booting from an extended logical partition. This parameter, "Hidden Sectors", should be the total number of sectors on the disk preceding the partition, but for a logical partition the value may be incorrectly initialized by the tool used to create or manipulate the partition. Sometimes it is the number of sectors from the start of the extended partition (e.g., 63) instead of from the beginning of the disk. If this number is incorrect the OS cannot determine where the other sectors of its own partition are and the boot process hangs. Powerquest's Partition Table Editor may be used to fix the "Hidden Sectors" parameter in the partition boot record of any OS's installed in logical partitions. Partition boot records in primary partitions are normally okay.

Windows 95/98/ME and the 8-GB Boundary
As shipped from Microsoft, the Windows 95/98/ME family was not designed to boot from a partition that starts above the cylinder-1023 mark, (which corresponds to about 8 GB). Although not widely known, it is possible to patch the partition boot sector and eliminate this limitation. If we plan to move any Windows 95/98/ME OS to a partition above the 8-GB boundary, we may need to apply this patch to enable it to boot.

Fixing Windows 2000/XP BOOT.INI Files
Windows 2000/XP "knows" about other partitions, even if they're hidden. If we've rearranged partitions since the OS image was made, we may need to correct a value in boot.ini that specifies which partition it's supposed to boot up.

Fixing Windows 2000/XP Drive Letters
Windows NT, 2000, and XP remember drive letters previously assigned to partitions. This can create problems when cloning, duplicating, or moving these OS's. Here is what we need to know to successfully handle these systems.

Installing the Boot Manager
Once all the operating systems are in place we need a way to control which OS gets to start at boot time. That's the job of a boot manager. The computer normally boots by passing control through the MBR on the first sector of the hard disk. The MBR searches the master partition table for the active boot partition, then passes control to that partition's boot record. Boot managers work by inserting their own code in place of the MBR so that at boot time control is diverted to the boot manager. The boot manager presents a menu, and when the user selects an OS the boot manager passes control to the corresponding partition boot sector.

Done!
It is not important whether or not you follow this exact procedure to configure multibooting. In fact, most people probably will have a machine that already has another OS installed and may prefer to setup multibooting via a different method that doesn't involve deleting that partition. The method documented here was intended to give you the big picture without getting bogged down in OS-specific installation issues. Notice that by modularizing the OS's like this it's easy to see that there does not need to be anything in the master boot sector or partition tables that is unique to a particular OS. Even the boot manager doesn't have to do anything special for particular OS's, it just needs to adjust the partition tables to hide or unhide partitions per our preferences and pass boot control off to the selected partition boot record.

Most boot managers include some sort of manual with step-by-step instructions on how to add multiple operating systems (either before or after the boot manager is installed), but they don't provide much information about the effect of the changes being made to the MBR, partition table and boot records. Often they leave you with the impression that OS's make specific changes to the MBR and partition tables that must be preserved or else that OS will crash. This makes it difficult to evaluate what may happen if you wish to deviate from the step-by-step instructions or if you have to revise or redo something.

I hope this exercise has provided insight into just what changes to the partitions and boot records are made when you install multiple operating systems and use a boot manager. The purpose here has not been to tell you how you should create your own multiboot setup, but to give you the background knowledge to tailor your own plan. Use some of these tools to study your own machine, then see the links section for step-by-step instructions from various other sources, and see if you can read between the lines to understand what is going on in each step of the step-by-step instructions. Perhaps the knowledge gained will help you make better use of the tools and boot manager you choose to use.

Acknowledgements


Links to More Information


Appendix: Miscellaneous Notes


Appendix: Backup Strategies


Appendix: An Introduction to Virtual PC®
Microsoft Virtual PC® is not just another way to multiboot, in the commonly understood sense. It is an application that permits the user to simultaneously run multiple operating systems in separate virtual machines on your Windows desktop.

Back to Top
Valid HTML5 author: Dan Goodell
last revised: 02/10/2007