HOWTO: Installing multiple OSes *my* way

SUOrangeman

Diamond Member
Oct 12, 1999
8,361
0
0

WARNING: Long post! Get some caffeine before continuing.

In response to this thread (and many others like it), I have decided to walk through the steps I used in setting up my own mutli-boot system. I currently run 4 flavors of Windows, along with FreeBSD and Linux (and anything else I get my hands on!). I am currently using a 36GB Raptor to host all of my OSes.

One feature of my arrangement is that I purposely D: as the "system" volume for all of my Windows operating systems, even though they are not the same D: partition in each OS. Using this method takes some serious planning and discipline.

Regardless of what version of Windows you use, it needs to write boot information to the C: volume. I always use FAT16 for my C: drive, as it is useable by all versions of Windows from 3.1 and NT4 (3.51, if you want to get technical) through the latest 2003 Server releases. I can only imagine that Longhorn and friends can easily handle FAT16 as well. On this C: volume, I will put common files that I may want to use across all OSes, like bookmarks/favorites, temp files, and virtual memory (swap space, page file). I also put DOS utilities like Ghost and Ranish, in case I really FUBAR something.

NOTE: C: does *NOT* have to be the very first partition on the drive, if you intend to run non-MS operating systems. I currently have FreeBSD on the first partition of my drive, with a second partition set aside for Solaris. Since I intend to use an extended partition and logical volumes, I had to make my third partition the FAT16 C: volume. With any Windows, C: must be a primary partition.

If you want to do "natural" installs (as in, the way MS "intended", without the use of third-party tools), it is a general rule to install the oldest Windows release first. Start with all of the DOS-based release (Windows 3.1, 3.11, 95, 98, 98SE, ME), and then do the NT-based releases (again, oldest-to-newest: 3.51, 4.0, 2000, XP, 2003 Server.) I think you can only install one DOS-based Windows release without using third-party tools.

In order to ensure that all of my Windows partitions had their own D: volume, I effectively had to create those logical partitions in reverse order. In other words, I have to get the D: volume for my oldest Windows release "further" into the drive. To make it a little easier for myself, I essentially made dummy Linux partitions to consume the space I would use for the newer Windows releases. No release of Windows will assign a drive letter to the Linux partition.

Since I've probably lost a few of you, let's take it a step at a time.

1. Plan what I want to install.

Example: I want to install WinME, 2K, XP, and 2003 Server on one hard drive, as well as FreeBSD, Solaris, Linux, and maybe some others. I want to give each OS 2GB of its own space.


Things to consider: A hard drive can only have four physical partitions. In my experience thus far, FreeBSD and Solaris have required a (physical) primary partition. I know that I also need at least one primary partition for all of the Windows installs. Everything else will go in logical volumes inside an extended partition. I also know that the 1024th-cylinder issue *may* affect my ability to boot some OSes. Again, my experience tells me that the 1024th cylinder can sometime be around the 8GB mark "into" the drive.

2. Install all Windows releases on *one* bare hard drive.

NOTE: I prefer to have all of my OSes on one hard drive. However, it is absolutely possible to use multiple drives. Given the plans and intentions change over time (i.e., I might want to use that second drive in another system), I don't want to put the stability of my OSes in jeopardy. Also, realize that you will not be using more than one OS simultaneously, so there is no reason why multiple OSes won't work on one hard drive.

NOTE: If you are going to have multiple drives in one system, have all of the drives connected when you install the OSes. The moment you add another drive to an existing system (especially if it already has data on it), it will likely wreak havoc on your drive lettering scheme. I feel it is best to address this now to allow you to accommodate it.

NOTE: I prefer to install all of my Windows installs first because Microsoft will take over the boot options with no regard for others. I let Windows do its thing first and elect to do non-Windows stuff later.

2A. With whatever partitioning tools I have (Linux, PartitionMagic, Ranish, etc.), I create two dummy Linux partitions, each 2GB and each is a primary partition. Formatting these dummy partitions is not required; they just need to be there.

2B. Create a 1GB primary FAT16 partition. This will be the C: volume for the Windows installs. I chose for the reasons I stated above (temp files, swap space/page file, and a few DOS utilities). This partition can be formatted at this time. Also, make this partition the active (boot) partition for the system.

2C. Create an extended partition to consume the rest of the drive.

2D. Inside the extended partition, create a dummy 3GB Linux partition.

NOTE: Prior to this point, I've used 5GB of the drive. I want to reserve the next 3GB for other OSes to remain under that 1024th cylinder.

At this point, the drive layout looks something like this:

2GB primary Linux
2GB primary Linux
1GB primary, active FAT16 (C: for all Windows installs)
xxGB extended partition (for the rest of the drive)
--3GB logical Linux

2E. To push the WinME install "further into" the drive, I create three 2GB Linux partitions, on each for 2003 Server, XP, and 2K.

2F. FINALLY :), I create the 2GB FAT32 volume for Windows ME. After a reboot, this volume will be D: and install Windows ME to D:\.

NOTE: I'll deal with setting up the consolidated virtual memory and temp files on C: later.

Now, the drive looks like this:

2GB primary Linux
2GB primary Linux
1GB primary, active FAT16 (C: for all Windows installs)
xxGB extended partition (for the rest of the drive)
--3GB logical Linux
--2GB logical Linux
--2GB logical Linux
--2GB logical Linux
--2GB logical FAT32 D: (for Windows ME)

2G. Once happy with WinME, prepare for the first NT-based install. Use a partitioning tool to go back a format the last "Linux" partition as NTFS.

NOTE: Start using NTFS here as WinME will ignore these partitions, as it cannot read NTFS natively.

Drive layout update:

2GB primary Linux
2GB primary Linux
1GB primary, active FAT16 (C: for all Windows installs)
xxGB extended partition (for the rest of the drive)
--3GB logical Linux
--2GB logical Linux
--2GB logical Linux
--2GB logical NTFS D: (for Windows 2K, not readable in Windows ME)
--2GB logical FAT32 D: (for Windows ME)

2H. Boot with the Win2K CD and install Win2K to its own D: NTFS volume.

NOTE: All NT-based OSes have their own boot manager (NT Loader) to handle multi-booting Windows installs. No configuration is necessary, as it will be set up automatically.

NOTE: Initially, the WinME volume will visible in Win2K, but likely as E:. Win2K's Disk Management allows you to hide most "unwanted" drive letters.

2I. Once happy with Win2K, prepare for the next OS. Use whatever tool (even the Disk Management tool, which is now available) to format the next "furthermost" "Linux" volume as NTFS. That volume will be D: for XP.

Drive layout update after reformatting that "Linux" volume for use by XP:

2GB primary Linux
2GB primary Linux
1GB primary, active FAT16 (C: for all Windows installs)
xxGB extended partition (for the rest of the drive)
--3GB logical Linux
--2GB logical Linux
--2GB logical NTFS D: (for Windows XP, not visible in ME, electively hidden in 2K)
--2GB logical NTFS D: (for Windows 2K, not visible in ME)
--2GB logical FAT32 D: (for Windows ME, electively hidden in 2K)

NOTE: Again, Disk Management allows you to hide most "unwanted" drive letters. Therefore, you can elect to not assign a drive letter for another OS's volume.

2J. Repeat steps 2H and 2I for WinXP.

NOTE: For a sanity check, feel free to boot into the other Windows installs. I cannot think of a good reason that something would have gone wrong.

Drive layout update just before 2003 Server is installed:

2GB primary Linux
2GB primary Linux
1GB primary, active FAT16 (C: for all Windows installs)
xxGB extended partition (for the rest of the drive)
--3GB logical Linux
--2GB logical NTFS D: (for Windows 2003 Server, electively hidden in other OSes)
--2GB logical NTFS D: (for Windows XP, electively hidden in other OSes)
--2GB logical NTFS D: (for Windows 2K, electively hidden in other OSes)
--2GB logical FAT32 D: (for Windows ME, electively hidden in other OSes)

2K. Again, repeat 2H and 2I for 2003 Server.

3. Install non-Windows OSes.

Each OS that remains likely offers some option for controlling the boot options. Each of the options will take the existing Windows boot options into consideration.

NOTE: You can use the NT Loader to boot into non-Windows OSes. The BootPart utility is very helpful in that regard.

NOTE: If you have to change some of the partitions that lie physically "ahead" of the Windows install, makes sure that your C:\boot.ini (which handles the Windows boot loader) is updated accordingly. For instance, if you later decide to split that 2GB "Linux" volume inside the extended partition, you may have to change the C:\boot.ini as follows:

Originally:

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="Microsoft Windows Server 2003 Standard Edition" /fastdetect
multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(6)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\="Microsoft Windows Millennium Edition"

After splitting the 3GB "Linux" volume:

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(0)partition(5)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Microsoft Windows Server 2003 Standard Edition" /fastdetect
multi(0)disk(0)rdisk(0)partition(6)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(7)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
C:\="Microsoft Windows Millennium Edition"

NOTE: C:\boot.ini is a hidden system file. You may have to change its attributes from read-only in order to edit it.

4. What if I run into trouble?

First of all, don't panic! You might do something drastic that will make the situation worse!

I think the install CD of your most-recent NT-based OS (2003 Server, XP, etc.) has and emergency recovery mode. Feel free to try it out before your start any of your installs to see what you can and cannot do.

Once you've got 2K or XP up and running, I also recommend you check out Bart's PE Builder. This tool lets you run a "minimal Windows" instance entirely from CD. It's not the fastest thing in the world, but it is Windows. :)

There are several "Live CDs" that can start your system and help to diagnose and correct problems. On the Linux side, you've got a great resource in KNOPPIX. Heck even "normal" Linux install CDs from Gentoo, RedHat, and others can at least get you to a command line where you can fix some simple things.

Last, but not least, get to a working machine with Internet access and tell AT's OS forum exactly what you did and what you had intended to do. I'm sure that somebody can help. I also answer PMs, but my response may not be as timely as you need it to be.

Any questions?

-SUO
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
My guide to installing multiple OSes:
I have 4 x86 based PCs (two duallies :cool: ).
I have 4 SUN machines (one dually :D).
I have 2 Apple machines :)D).
Done.
 

SUOrangeman

Diamond Member
Oct 12, 1999
8,361
0
0
LOL. That's definitely one way to do it. I work(ed) with guy who runs multiple Suns at home. I understand that he has the machines in his garaged, but drilled holes through the walls so that he can have user terminals (display, keyboard/mouse) from within the house.

I live in a 2BR, two-level condo. I have yet to convince my wife of the benefits of a third machine to run as an HTPC, even though, I currently run HTPC software from *her* PC.

-SUO
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
Originally posted by: SUOrangeman
LOL. That's definitely one way to do it. I work(ed) with guy who runs multiple Suns at home. I understand that he has the machines in his garaged, but drilled holes through the walls so that he can have user terminals (display, keyboard/mouse) from within the house.

I live in a 2BR, two-level condo. I have yet to convince my wife of the benefits of a third machine to run as an HTPC, even though, I currently run HTPC software from *her* PC.

-SUO

I don't know how I missed this previously. :p

I don't see a need to have local console access on the SUN machines. SSH and serial cables are good enough for most things. I guess I'm lucky I'm not married, and my chick REALLY likes the geek thing. :cool:
 

SUOrangeman

Diamond Member
Oct 12, 1999
8,361
0
0
Andy, is there a way to search the FAQs by author/contributor. I'm trying to remember what was in the "old" one. I can tell if this one may be better suied to stand on its own. It's been a week or two and hasn't gotten many comments on its content.

n0c, this guy is ubergeek. He archives tech talk shows/discussions and converts them to mp3 so he can listen to them in his car. He had (still has?) "UNIX-X11" as his license plate here in VA. His *son* wrote ik (Install Kernel).

-SUO
 

AndyHui

Administrator Emeritus<br>Elite Member<br>AT FAQ M
Oct 9, 1999
13,141
16
81
No, not by author. I'll see if anything can be done though.
 

justinmann

Member
May 27, 2004
27
0
0
Rats, wish I'd read this a few days ago. I installed server 2003 and then XP... Now I can't get it to boot into 2003 (although it boots into XP just fine). When trying safe mode, I can see a quick list of commands, and then it reboots. I'm pretty sure it's an nt loader thing. I suppose I could replace this file from inside XP, however, I thought the xp NT loader and the 2003 loader were the same thing (from what I've read about creating 2003 boot floppies) If it doesn't sound like NT loader, can you suggest an alternative possibility?
Of course, there's not much in there, so I can always just reinstall... but, I like a challenge. ;-)

Thanks,
Justin
 

justinmann

Member
May 27, 2004
27
0
0
Oops, I should have been more verbose. :) I get both options from the menu at bootup, but the one for server 2003 doesn't lead anywhere... it just causes my computer to reboot after scrolling very rapidly through some commands (if I have it in safe mode, otherwise it just appears to reboot). I tried playing around with the boot.ini file, making server2003 default, and turning off the "fastdetect" thing, but nothing made any difference... leading me to believe that the problem is with the files that are being called from boot.ini.

thanks. :)

Justin
 

VirtualLarry

No Lifer
Aug 25, 2001
56,570
10,200
126
I think that you can boot from the Server 2003 recovery CD in that case, and do a "fixboot" command, should refresh the bootloader files, I think. I normally keep a backup of all of the root-dir bootloader files, from each installed OS, in archival subdirs, just for cases like this. You could probably just extract them off of the Server 2003 CD, using XP, and then copy them over.
 

user1234

Banned
Jul 11, 2004
2,428
0
0
Originally posted by: SUOrangeman
A friendly bump as we head into 2Q 05.

-SUO


unless you're getting paid to do this stuff, I can't see why you'd waste so much time and energy (mental energy) to deal with these kinds of setups which are no longer useful to anyone. It's just such a big mess having so many partitons share things in ad hoc way, and in such a constrained environement. If you want to try out various OSes just get a bigger disk, but put your primary OS (or two) on the raptor. It's usually to copy files between partitions directly, but of not (e.g. linux -> windows) then you can set up a small FAT partition which all OSes can read/write. But the best way to share files is to have a file server machine, which could double as HTPC as well. I suggest to build one starting with a large 250GB drive and Athlon 64 processor, and choose a quiet case and power supply. A simple video card or mobo with integrated graphics should do fine. So your looking at less then $500 here. Tell your wife it will help share files between your other PCs in addition to record/play TV shows and DVDs on the TV as well as stream the videos for viewing on other PCs.
 

SUOrangeman

Diamond Member
Oct 12, 1999
8,361
0
0
Admittedly, I did not go back and read my original post, but I simply beg to differ on a few of your points:

> these kinds of setups which are no longer useful to anyone

Perhaps, not useful to you. There is a somewhat cyclical trend when a whole lot of folks want to dual-boot two Windows OSes or one Windows OS with, say, Linux. Soundly, there's fifty individual threads that all essentially ask the same thing. Sure, I don't expect most folks to have a strong need for more than two OS installs, but I like my extreme configuration as proof that it can be done ... and done on a single PC. I'm not expecting everyone to use this method. Hopefully, folks can appropriately scale it down to meet their needs.

BTW, with the 64-bit XP release appearing any second now, I feel a good deal of "How do I dual-boot?" threads coming.

> such a big mess having so many partitons share things ... best way to share files is to have ...

I planned my configuration so that I shared as little as necessary (C: ) between OS, the various Windows releases in particular. I am only sharing temp file space and virtual memory.

Finally, my wife's PC is the HTPC in the house. :)

-SUO