Multi-boot tips

Overview...

I've spent a considerable amount of time playing around with multi-booting various operating systems - mostly on PC hardware. I would like to do more with my Sparc 10 (maybe boot Solaris and a Linux for Sparc hardware)... but I only have a 1g SCSI drive - so that doesn't give me much room for either OS.

I actually bought one of the new iMac DV's recently... and figured out that I could set up (x86) multi-boots running Virtual PC - but I'm a bit limited by the fact that I don't have anything to simulate a floppy drive. Virtual PC seems to do a great job emulating very compatible x86 hardware... and I'm sure you could set up almost any x86 OS in the virtual machine.

I'd like to do more with multi-booting with Solaris x86, but I haven't looked into customizing the boot loader or alternative partitioning scenarios. I suspect the parititioning scheme more or less holds to FreeBSD conventions (slices, etc...) - but I can't make any informed statements about this at this point. Also - I have pretty funky (PC-Chips M748LMRT) motherboards that are well supported under Linux and FreeBSD, but I'm still waiting for see Solaris drivers for the cheap onboard NICS (Davicom 9102 and SiS 900). I could just throw a better 3com/Intel NIC in, but I'd rather use my single (shared) ISA/PCI slot(s) for a real modem.

Unfortunately... I don't have much (any?) useful experience with SCSI drives on PC hardware. I've always looked at PC's as a cheaper alternative to more exotic hardware - and I never put too much money into a single machine. Everyone would no doubt love to purchase Sun UltraSparc machines or SGI hardware... but the average computer user probably thinks in terms of hundreds of dollars on a personal budget.


Disclaimers...

The suggestions here are certainly not the only way to accomplish this boot scenario, but I hope everything is fairly easy to follow. My only assumption is that you have access to the disk tools provided with each operating system you are installing. Every operating system has partitioning tools that might be helpful... and it's always nice to have a nice arsenal to work out alternative solutions.

I started this page a long time ago with full *intent* to complete it - but the current state of things falls very short of my own expectations. On one hand... I was hoping to share some decent general tips that apply to multi-booting with *any* OS - but I also wanted to give concrete examples of possible scenarios. Unfortunately... the only example given is a pretty cheesy Windows-centric scenario that isn't very realistic for some of the very large hard-drives out these days. One of these days... I'll add more examples/variations that better reflect a wider range of possibilities.

Please don't send me email to tell me something "didn't work" or that I got something wrong... and you screwed up your system. These instructions aren't meant to cover every possible situation you might run into on your computer - I am only giving my suggestions for what I feel is the easiest way. I'll be glad to try to help should you run into difficulties, but I am assuming you have at least read what I took so much time to write... before you email me with basic questions. In other words... I'd like to think I'm a nice guy, provided you have at least made an honest attempt at understanding the fruits of my labor.


Tools you (might) need...

Gilles Vollant is the author of bootpart and winimage and other nice programs... and has a page at the WinImage home. You might want to use bootpart at various stages of the multi-boot setup, so go grab it before you wipe your hard-drive and start setting up the multi-boot. Most things I mention here can be done without bootpart... but it is a very cool utility to add to your set of disk tools.

cfdisk is an excellent power-tool for partitioning (one of my favorites) - packaged with any recent? (I only noticed it lately) Linux distribution. My next choice would be the partitioning utility that ships with SuSE Linux. Everything else falls somewhere after... keeping in mind that everything is good for something

As far as boot managers go - it's usually a matter of personal preference which menu/program you prefer when you start up your computer, but the choice becomes more important when you start talking about 3+ operating systems.

Finally... since there are so many ways to accomplish the same combination of operating systems on a single computer - I prefer to share what I think is the least confusing. Relevant details are equally important... but I'd rather leave the clever 'guru' solutions for supplemental reading than cloud a simple procedure with superflous technical discussion.


Assumptions...

The instructions in part 'A' assume that you have two hard-drives, and are willing to 'wipe' both drives and follow my instructions until you have all OS' set up on your computer. I take no responsibility for the state of your computer if you think you want to 'try' something that I don't suggest in these instructions. You should be proficient with DOS (partitioning your hard-drive, making it bootable, setting up your CD-rom drive under DOS, etc...). Please don't blame me for leaving out details I assume should be common knowledge for someone attempting to set up a multiboot on a computer. Please read through my notes before you start - if you think something is 'tricky' or confusing, you might be best to grab someone who knows what he/she is doing.

If you are not willing to 'wipe' your hard-drive, there are still ways to arrive at the multi-boot scenario... discussed in part B. I still recommend you read part A below... since I cover important points that are applicable to either scenario.


Filesystem considerations...

There are several compatibility issues between operating systems with respect to file systems and partition types that you need to consider before beginning. In many cases, it is important which disk partitioning tools you use as you proceed with your installation. It is generally a good idea to partition in steps - don't get carried away with partitioning with one particular tool - when in doubt about space you are not dealing with immediately, you probably want to leave the space unpartitioned until you are certain how you are going to use it.

  1. FAT16/FAT32/NTFS issues
    • If you want to get at all of your other 'Windows' partitions from 'real' DOS, you need to stick to the FAT16 file system for all partitions (except Linux).
    • If you only want limited access to other partitions from DOS and want to utilize NTFS or FAT32, then plan accordingly.

      • While it is possible for NT to read FAT32 with some 'helpers', remember that you will not be able to get at the FAT32 partitions until you install such tools. I'm not aware of a free tool to allow read/write access to FAT32 from NT, but I believe you can find shareware and/or commercial versions to give you read/write access at Beverly Hills software - a great site for many NT/Win32 tools.
      • I have tried an NTFS driver for Linux with some success, but last thing I knew... it was still in alpha. Also, I'm not offering any tips on recompiling kernels for Unix systems... so proceed at your own risk.
      • If you choose to utilize the DOS 6.22 (or earlier) installation, remember that you can only read/write FAT16 partitions after booting to DOS. I have also heard of an NTFS driver for DOS... but don't have any further information at the time I'm writing this.
      • Linux doesn't have a problem reading/writing to FAT16 or FAT32 filesystems... and if you choose to try the NTFS driver you might even be able to read NTFS. When you are creating your partitions for Linux, you should probably set up all your mount points for all partitions to minimize work later. This seems to be somewhat distribution specific, but if you're lucky... all your /etc/fstab entries will be created for your fat16/32 partitions.


General notes on partitioning strategy

The partitioning scheme I am presenting assumes a separate system partition for each 'Windows' OS for sake of organization and to prevent conflicts between OS'. It is possible to install some combinations of Windows on the 'same' partitions, but I don't recommend it... so I'm not going to discuss which 'Windows' combinations will work on common partitions.

All of the Windows operating systems (DOS, Windows 3.x, 95, 98, NT, 2000) use at least some space on the first primary partition (C: drive) - but you can choose to install the bulk of the OS' on other drives, partitions, etc... This reality makes it possible to multi-boot a number of Windows OS' fairly easily, but it does come with certain caveats and considerations.

In general, you want to use primary partitions effectively - since this and the well-known 1024 cylinder issue will dictate how many operating systems you can realistically hope to run on the same system.

Multiple hard-drives are helpful to a point - depending on which operating systems you plan to use - although it certainly can't hurt to have more than one. You will more than likely be limited to booting from the first two (master and slave on the primary IDE controller) - so three or more drives doesn't necessarily increase the chances to run more operating systems.

If you don't want to dedicate a separate partition to 'true' DOS, but would just like the ability to boot to real DOS on your hard-drive, you can ultimately install 98 or NT to the same partition where you initially install DOS. This is discussed later in the actual install procedures.

I strongly suggest that you create separate partitions for each OS you plan to install. I'm not offering any support for magical things you thought would work - if you get creative, it's your own fault if you blow it. Above all, DO NOT jump into partitioning without reading the complete instructions. I am only emphasizing that each OS that will eventually be on its own partition.


Installing applications over themselves to save disk space under 98/NT

When you get around to installing specific applications for NT/98, it is possible to reinstall applications over themselves to establish the registry settings for each OS. There are specific warnings about certain applications... especially some of the development suites (Microsoft Visual Studio, etc...), but I haven't experienced any problems thus far where I haven't seen specific warnings. Keep in mind that this will complicate uninstalls if you have applications installed under both OS'. You will generally have to uninstall from one OS, reinstall under the 'second' OS, and then uninstall from the second OS to completely remove an application from both systems.

Keep in mind that this method of installing applications over themselves is clearly NOT endorsed or supported by any major software vendors that I'm aware of, so continue at your own risk. I can only share that I haven't had problems with combinations of software I've tried, keeping in mind specific warnings from vendors.


Part A - Starting from Scratch

I am giving instructions for a four OS (3.1/98/NT/Linux) setup on a computer with two physical hard drives - if you are planning something different, please pay attention to the exceptions noted. If you only have one hard drive... you will probably still want to read below, but the instructions particular to a single hard drive being in Part B.

Getting a (normal) fresh start...
  1. Boot to your DOS floppy
  2. Delete all partitions on your hard-drive(s)
  3. Reboot your computer with DOS floppy


Now create partitions and put DOS on your C: drive...

  1. Use fdisk to create a primary DOS partition on your first hard-drive. This partition should not be the size of the whole drive. Remember we are planning on making several partitions to accomodate all the OS'
    • For ease of discussion, let's just create all the partitions here. If you have 'special' circumstances that don't let you partition your whole (first) hard-drive, you are not out of luck... but this portion isn't intended to address more creative partitioning strategies. For right now... let's continue assuming you have a fairly 'normal' two hard-drive scenario (drives both within normal DOS limitations... <8.4g... and BIOS support to recognize the entire hard-drives without special helpers). By 'Helpers'... I am referring to products such as 'Western Digital's EZDrive', 'Partition Magic', 'System Commander', and similar products. In this portion, I am attempting to explain what I consider a 'pure' installation.

    • I would suggest maybe 500mb for the primary DOS partition (plenty of space for Win 3.11) if you want a separate 'true' DOS partition. If you only want to be able to 'boot' to true DOS, but don't want to allocate a separate partition... then I recommend that you use your primary partition for your Win 98 installation... and create a large enough partition to handle Win 98 and allow breathing room for swap space, etc...
    • Win 98 and NT both will use a minimal amount of space on the primary partition, regardless of whether you install the bulk of the OS' on logical drives. If you are installing 'all' of 98 or NT on the C: drive (primary partition), I just recommend Win 98 for the 'full' primary partition installation for added flexibility (and humorous tricks with NT... should you be interested later).

    • Create an extended DOS partition for the remainder of your drive... whatever that might be (again... assuming you have two hard-drives... and will be installing Linux on the second drive only).
    • Create logical partitions in the extended partition as necessary - keeping in mind we are assuming at least C, D (and possibly E) on the first hard-drive. I prefer to keep each OS separate from its applications, and install 'shared' applications for 98/NT on a common drive(s). I hope that you looked at my disclaimer about installing applications over themselves for 98/NT - in some cases there are specific warnings from vendors, but I have found that things work without problems in general. Uninstalling applications can be complicated, but I really prefer (a) common application drive(s) for organization and disk-space conservation. If you have objections against using FAT16 for efficiency/space reasons in comparison to FAT32, remember I am just attempting to maintain accessibility among all the OS' installed.
    • Make the primary DOS partition active and reboot with DOS floppy (not a Win 98 boot disk). Remember I assuming we are installing 'real' DOS 6.22
    • Format the primary partition as a system drive (format c: /s)
    • Create DOS folder on C: drive and copy files from DOS floppy (copy a:\*.* c:\dos)
    • Create CDROM folder on C: drive and copy your DOS cd-rom driver to the folder (copy a:\some_driver.sys c:\cdrom)
    • It's probably a good idea to just format the other partitions you created now (D, E, F, G, ...)

 

Now you want to create Autoexec.bat and Config.sys files to give you access to your CD-rom drive

In Autoexec.bat, I like the following for aesthetics :

    @ECHO OFF
    SET DIRCMD=/OGEN /P
    PATH=C:\;C:\DOS
    C:\DOS\MSCDEX.EXE /D:MSCD001
    DOSKEY

In Config.sys, at least :

    LASTDRIVE=Z
    DEVICE=C:\CDROM\MY_CD_ROM.SYS /D:MSCD001
    (replacing MY_CD_ROM.SYS with the valid driver for your CD-rom)

Reboot your computer to verify you can boot from your hard-drive now


Install Windows NT to D: drive

  1. If you can boot from your CD-rom, that would be great... but not necessary
  2. Here's where you consider if you want the NT system partition to use NTFS
    • If you later choose to convert to NTFS, keep in mind that you screw up drive letters and paths for other OS', so plan ahead.
    • Keep this in mind that similar things will happen any time you convert to a filesystem that is 'invisible' to a particular OS. Be careful before you cause drive letter nightmares for yourself.
  3. I only use NT for OS stability (compared to Win 9x) - no NTFS... and this keeps the drive letters the same under each OS, but it's your choice here.

When you restart the computer after the NT installation, you should notice that you have two (really three - but two are different configurations for NT) choices in the boot menu.

  • Windows NT Workstation 4.0 [VGA Mode]
  • Windows NT Workstation 4.0
  • MS-DOS

It would probably be a good idea to verify that you can boot to DOS from the menu choice now.


Boot to DOS (from the menu) and start the 98 installation...

This of course assumes you did get your CD-rom working under DOS and will be able to access the CD to start the install.

  • Assuming you have DOS on your C drive, and NT on your D drive, you will want to install Win 98 to your E drive.
  • If you don't want to isolate your 'true' DOS on its own partition, then you should be installing Win 98 to your C drive. Again... I'm assuming you read my note about flexibility... and why I don't recommend installing NT on your primary partition when you are also installing Win 98.
  • If you have good reasons for using NTFS... and did so for the NT installation, 98 will not see the NTFS partition... and the the appropriate drive for the 98 installation would then be D
  • When you restart your computer, you will notice Windows 98 has replaced the MS-DOS entry in NT's boot menu - we can fix that later.


Start your Linux installation

Again... it would be convenient to boot to your CD-rom - otherwise use a Linux boot disk or make one and start the Linux installation. Most (if not all) Linux distributions come with a utility called 'rawrite' to let you create floppies from the necessary images. This utility is commonly located in a 'dosutils' directory on the distribution CD (or ftp site of your choice). Please look at the relevant README files to figure out how to use it - very easy and straightforward.

However you choose to create your partitions for Linux, keep these things in mind:

  • Please make sure your boot partition is a primary partition on your second hard-drive. Depending on what distribution of Linux you are installing, this might or might not be under your control. Remember I assumed in the very beginning that you would be able to wipe out all existing partitions to accomplish the multi-boot setup... so this shouldn't be an issue at this point. If you are using DiskDruid (RedHat), the easiest way to make sure your / mount is a primary partition is to simply create it first. If you have existing partitions on your hard-drive, it is probably easiest to delete all partitions and start your partitioning with what will be your / mount. SuSE Linux has a partitioning tool that gives you slightly more control... and you can create multiple primary partitions. If you prefer to use 'real' Unix fdisk, just keep the suggestions above in mind when creating your partitions.
  • When you finally install LILO, make sure you install it on the boot partition of your Linux installation (not the master boot record)


Do some magic with bootpart (or dd from the Linux side)

  • Create a folder somewhere for bootpart (C:\bootpart would be a good choice)
  • Unzip/copy the contents of bootpa22.zip to the folder you just created
    • 'cd' to the bootpart folder wherever you put it
    • Type 'bootpart' and look at the output - all the partitions on your hard-drives are listed with their types, etc...

  • You are trying to figure out which partition is your / partition for your Linux installation. It shouldn't be too difficult to tell since bootpart lists the partition sizes with their corresponding types.
  • In general, you want to issue a command that looks something like the following:

bootpart <partition_number> <filename to store boot info> <Entry in NT's boot loader>

For example:

bootpart 7 c:\bootsect.lnx SuSE Linux 6.3

I strongly recommend you also create a bootable image for Win 98 following a similar procedure, but making use of the 'Win95' type where you would enter the partition number. True... you already have a Win 98 boot choice in NT's menu, but I have seen Win 98 fail to boot in some cases... when you leave its boot as C:\ in the boot.ini file.

bootpart win95 c:\bootsect.w9x Windows 98

Finally, you can regain your 'true' DOS boot by using the dos622 choice for the partition number

bootpart dos622 c:\bootsect.622 MS-DOS 6.22


Part B - Other variations (other combinations of OS', single hard drive multiboots, etc...)

This section is meant to deal with other possibilities not mentioned in part A...

Possibilities I hope to at least summarize:

  • Windows NT/Linux only (two hard drives).. assuming NT Workstation 4.0
  • DOS/Windows 98/Linux using NT's OS loader, but without NT installed as OS (two hard drives)
  • Windows 98/Linux (two hard drives)
  • Windows NT/Linux using LILO for boot menu (single hard drive)
  • Windows NT/Linux using NT's menu for boot choices (single hard drive)
  • Windows 98/Linux (single hard drive)
  • Windows NT/Linux (two hard-drives)
  • Windows NT/Linux (same hard drive)
  • Windows 98/Linux (same hard drive)
  • Windows 98/FreeBSD/Linux
  • Linux/FreeBSD
  • Linux/Solaris x86
  • Linux/BeOS
  • etc... ;-)
  • OS/2 might have been a possibility... but - I doubt I'll ever use OS/2... based on what I've seen of it. I installed a very old beta (probably not fair since it was more or less equivalent to Windows 3.1) - but even the last OS/2 Warp 4 is probably on the path of the dodo bird ;-) and I just don't think it's worth the effort.