Poor Man's Guide to Multi-Booting

Hard Disk Partitioning Made Easy

by Thomas Rude, CISSP

March 2001


Multi-booting. What is it and why would anyone want to do it? Quickly, I define multi-booting as 2 or more bootable operating systems within a single system (system being a PC, a laptop, a server, etc.). Now why would anyone want to have more than one operating system on their machine?!?! Well, there are as many different reasons as there are operating systems, but in a nutshell, because in today's digital arena, there is no single solution! For me, the answer to this question is simple: I use the best tool for the job at hand (or try to at least). The best tool for me is not always the same OS (operating system). One, since I'm an engineer/consultant, I need to be able to perform my job in many different environments. Therefore, having various operating systems on my laptop will allow me to perform my job in many environments without having to lug around extra hard drives and/or laptops. If I need a *nix (UNIX/Linux) environment, I've got it. If I need a Windows NT platform, taken care of. If I need a system that can handle a very large file (say, greater than 4GB) I've got it - BeOS. Oh, an old DOS program you say? Taken care of. Multi-booting is a necessity if you have a laptop and need various operating systems and do not want to lug around numerous hard drives!

But let us not forget the average home user. There are so many great tools out there today, and not all of them run on every platform! Perhaps you are a musician and so you love your Windows 2000 setup with your MIDI style home recording. But what if you also love Linux, and the features therein? What can you do? Besides buying separate systems, or even just separate hard drives, you have another option: multi-boot your system! That's right - take your hard drive and partition it so that you can boot each of these from that single source.

Now, before I continue, I would like to note a few important caveats:
  1)  Before you partition/re-partition your hard drive, back up your data! I cannot stress this enough! Please, do yourself a huge favor and backup the data. Feel free to then make a backup of that backup!
  2)   Once you've made your data backup test the accuracy and integrity of that backup! This is just as important as #1! Take your backup and open a few files, restore a few tools. Does everything look good, run as intended, etc.? Good. Now you have comfort that you can restore that backup.
  3) The configuring of a drive and its geometry for partitioning and the actual process of partitioning is indeed technical. At a very low level, papers have been written just on drive geometry and what occurs as the newly partitioned drive is mapped out. HOWEVER, that is not the purpose of my paper. I always advise everyone to take some information (for instance, this paper) and do more research (say, delve deeper into partitioning) to get a better understanding of the topic at hand.
  4) My intent and purpose is to simply show how you can partition your hard drive so that you can take advantage of various operating systems, keeping it as simplistic as I can.
  5) For this paper, physical disk, hard disk, and hard drive are to be thought of as one in the same -> the actual physical disk that data is written to.

Okay, let's get ready to partition!

Problem
  - - > I need to use different operating systems for different tasks. Specifically, I require my laptop to have 6 operating systems:
   1 Hard Drive - 6 OSs
    - -> BeOS 5.0 Professional
    - -> DOS 6.22
    - -> Red Hat Linux 6.2
    - -> Windows 98
    - -> Windows NT 4.0 Server
    - -> Windows 2000 Server

Solution
   - - > Multi-booting via partitioning the hard drive!

Resources
  - - > Laptop with 17.5GB (gigabyte) hard drive.
  - - > System Commander 2000
  - - > Various operating sytems installation media

Research
  - - > There can be only 4 Primary Partitions on a hard drive.

  - - > If needed, the 4th Primary Partition can be allocated as an Extended Partition.

  - - > Within that Extended Partition there can be any number of Logical Partitions (until all space is used within the Extended Partition). And, actually, there is a limit on the number of Logical Partitions, but in reality, few of us would ever reach that number! So for the purpose of this paper that is why I say there can be any number.

    |<---------------------------------- Hard Drive --------------------------------->|

    |<----->
      1st Primary Partition

    |           <----->
                 2nd Primary Partition

    |                      <----->
                            3rd Primary Partition

    |                                 <------------------------------------------------------->|
                                       4th Primary Partition OR our Extended Partition
                                         <----->
                                         1st Logical Partition
                                                    <----->
                                                    2nd Logical Partition
                                                               <----->
                                                               3rd Logical Partition
                                                                          <----->
                                                                          4th Logical Partition
                                                                                                     and so on

  - - > So, to recap, there may be 4 Primary Partitions on a hard disk OR there may be 3 Primary Partitions and an Extended Partition.

  - - > I think it is best to think of the Extended Partition as a container. And, within that container you can create numerous sub-containers. These sub-containers are what we call Logical Partitions.

  - - > For those curious, a Primary Partition can be defined as "a partition that can contain a bootstrap loader in the first sector together with associated operating system code elsewhere in the partition." SEE NOTE 1   What does this mean in lay terms? Basically, a Primary Partition is flagged as bootable because it contains code that loads an operating system! Got that?!!? :)

  - - > You may notice that, with regards to the diagram above, there is a small amount of space between each partition. When I partition out a hard disk, I make sure to leave a small space between each partition (say, 15MB or so). I do this so as to ensure that the partitions do NOT overlap. This is crucial. Do yourself another favor and leave a small chunk of space on either side of a partition.

  - - > Phsyical Disks can be broken down into technical pieces. These technical pieces together form 'drive geometry.'

  - - > Drive geometry can be thought of as looking down on the hard drive, noting it is round, and visualizing an old album (say, Puff the Magic Dragon or Alive! by KISS). If you look at the album, you see concentric lines going round and round.

  - - > These concentric lines are known as cylinders. The larger the hard disk, the more cylinders there are.

  - - > Many operating systems require to be installed within a Primary Partition in order to be bootable.

  - - > Some operating systems may be installed within an Extended or Logical Partition and still be bootable.

  - - > Some operating systems, Linux for example, may require that only the boot code reside within the first 1024 cylinders of a hard disk.

  - - > Some computer BIOS have a 'limitation' concerning drive geometry. This limitation means many operating systems must be installed below the 1024th cylinder in order to be bootable. This is very important to remember when partitioning the hard drive and planning where to install each operating system. If an operating system must be installed within a Primary Partition and you install it in a Logical Partition, chances are that operating system will not boot! Be careful!

  - - > So what happens when you partition your hard disk? Keeping it simple, think of partitioning as mapping out the geometry of your hard disk into chunks. You specify the size of the chunk and what file system shall reside on that chunk (every file system is represented by a 'fs type').

  - - > A tool is required to partition out a hard drive. There are numerous tools available, some free, some not. You may have heard of or used tools such as fdisk, Ranish partition manager, Partition Magic, disk druid, etc. These tools perform multiple functions, but each can partition a hard drive.

  - - > My personal tool of choice for this endeavor is System Commander 2000. I've tested and tried numerous tools and keep coming back to this little gem. It's inexpensive, has a wide range of features, and has performed well for me. An added bonus - an excellent user guide, how-to faq, and intuitive design allows for ease of installation, configuration, and use. You can read more by following the link to VCOM Products.

  - - > In addition to using a tool to partition out a hard drive, you will need a Boot Manager tool. Because of the design of operating systems from the great Northwest (these OSs tend to behave in a bully way - overwriting any boot code from another operating system thereby rendering those other OSs un-bootable), a Boot Manager is required if you want to access and boot the various operating systems you have installed. Oh, quick mention, System Commander 2000 has a wonderful bootman included!

Step-by-step
  1) Windows 98 is already installed on my hard disk. It is the only partition. One, large, 17.5GB partition! Rather nasty, eh?

  2) I install System Commander 2000, following the installation instructions.

  3) Upon reboot, I use System Commander 2000 to repartition my hard disk in the following design:
        2GB FAT16 Windows98 Primary Partition *
        2GB FAT16 Windows NT 4.0 Server Primary Partition *
        2GB NTFS5 Windows 2000 Server Primary Partition *
        11GB Extended Partition:
            18MB ext2fs Linux /boot Logical Partition *
            128MB swap Linux Logical Partition
            3.5GB free space
            all above contained within the first 1024 cylinders, all below are beyond the 1024th cylinder
            2GB ext2fs Linux Logical Partition
            2GB bfs BeOS Logical Partition
            1.2GB bfs BeOS Logical Partition *
            2GB FAT16 Logical Partition

  4) Using the respective installation media I install each operating system to the desired partition, noted here by *. The * signifies a bootable partition.

Wrap Up
Again, there is quite a bit of technical magic happening here, more than what I've discussed. However, System Commander 2000 does much of that work for you, thereby relieving you of some tedious work. Do not let me discourage you, though. If you've the time, and a system to play on, I recommend trying various tools to partition your hard disk and taking the manual approach at least one time. This will give you a greater appreciation for tools such as System Commander 2000.


Note 1 = Qoute taken from Tony Sammes and Brian Jenkinson's Forensic Computing A Practioner's Guide, p. 148, copyright 2000.


Back to Papers

copyright @2000 info@crazytrain.com