- 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
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