Understanding MultiBooting
and Booting Windows from an Extended Partition

by Dan Goodell

Installing the 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. Note that until we get to the code in the partition boot record, there doesn't need to be anything in the MBR or partition table specific to the OS being booted. We may be booting Windows, linux, or something else, but the MBR and partition tables still work the same way.

Boot managers work by diverting the boot process at the point of the MBR to allow the user to choose which becomes the active boot partition. When the user makes a choice, the boot manager adjusts the partition tables to hide or unhide partitions and passes control to the appropriate partition boot sector. Remember, to hide or unhide a partition the boot manager just needs to change a one-byte entry in the partition table.

Since boot managers more sophisticated than the simple Microsoft MBR won't fit in the tight confines of a single sector, some boot managers hide code or configuration data in the "unused" sectors following the MBR. This is normally not a problem unless some other utility is doing the same thing--since these sectors are outside of any partition they are outside the control of any file system, so there is no way for a program to know whether the sectors are in use or not.

Some boot managers may store their data in a regularly defined partition (either primary or logical), where data can be saved like regular files. However, the boot manager may impose limitations on the format of that partition, so if you don't already have a partition of the necessary format you may be required to create a partition dedicated solely to the boot manager. For example, if your boot manager must be installed in a FAT partition and you only have NTFS partitions, you will need to create a new FAT partition just for the boot manager. If you already have a partition in the right format, you may be able to just add the boot manager to it without having to give the boot manager its own exclusive partition.

If a boot manager stores files in a normal partition, it's possible for it to include a configuration program that may provide easy options to disable or reenable itself. Note, however, that any boot manager can always be disabled if you overwrite the MBR to eliminate the boot manager's code and restore the normal MBR action. This doesn't necessarily remove other parts of the boot manager, but it definitely disables it. (Note: the installation routines for Microsoft OS's habitually overwrite the MBR code. If you had a boot manager previously installed, this means it would have to be reinstalled).

The most rudimentary boot loaders--such as linux LILO and the NT loader (ntldr) used by Windows 2000 and XP--have little or no control over the partition tables to hide any partitions. They rely on the principle that if differing OS's cannot understand partitions in foreign file formats, then the partitions are as good as hidden anyway. This doesn't help, though, if you install duplicate or multiple OS's that can read each other's file formats. Better boot managers can hide/unhide primary partitions depending on which you want visible. The most versatile can also selectively hide logical volumes in the extended primary partition.

If the only OS's you've installed can't understand each other's file formats, or if they can and you don't care about it, then the rudimentary boot loaders should be fine. If you only have a couple OS's and can put them in primary partitions, then mid-level boot managers (like BootMagic, included with PartitionMagic) will allow you to hide them from each other. Since we've put some OS's in logical partitions that must be hidden when certain other OS's are booted, we need a good boot manager that is also capable of hiding logical partitions. BootIt-NG and XOSL fall into this latter category.

The XOSL (Extended Operating System Loader) boot manager is ideal for this project because it can boot OS's in logical partitions and can hide or unhide any primary or logical partition on an individual basis. It also plays nice by not sticking anything in track 0's "unused" sectors--and even better, it's free for personal use. Run the XOSL installation routine, then reboot. When the computer restarts, the boot manager's menu will appear. The menu is initially blank, so we need to add each OS selection. This isn't hard--just read the instructions and study the screen. For each OS selection click the [Hiding] button and select exactly which primary and/or logical partitions should be visible to each OS. (Warning: do not hide the extended partition itself, or all the logical partitions within it will be invisible).

That's it. The computer is set up for multibooting.


author: Dan Goodell, ©2003

Back