The original version of this HOWTO is maintained at
http://bewoner.dma.be/BeversHP/multiboot.html.
Most up-to-date version of this HOWTO can be found there. Questions and remarks can be sent to me. I'll try to find an answer to them, mail you the answer and place them under my FAQ-section. You might find me on IRCNET on channels #belgium and #flanders.
I'm going to explain to all it may concern how I created a multiboot-environment on my PC. It did cost me a lot of effort and time-consuming (re)installations of Windows98 and Windows NT. Especially the latter takes a serious amount of time to be installed. The purpose of this HOWTO is trying to save you this hassle. The only thing I can say is that it worked on my configuration, and that it will probably work on yours too. But as always: you can never be sure. There are already some HOWTO's available on this subject, but most of them are a bit outdated, since they don't cover the problems you might experience using the FAT32 filesystem. And since this is the filesystem Windows98 uses by default, I guess the time is right for this HOWTO.
The aim was being able to boot directly into MS-DOS 6.22, Windows98, Windows NT Server 4.0 (I've used Windows NT Server 4.0, but you can also use NT Workstation and all versions of NT from 3.51 on) and finally Linux Redhat 6.0 (but other Linux distributions shouldn't cause any problems; I also tried it with SuSE 6.0). If you do not want all these operating systems, that shouldn't be a problem. Since we are using the NT boot loader to load every operating system, the only restriction is that you want to install Windows NT. If you don't want NT but only Linux and MS_DOS or/and Windows9x installed, that is possible too. You can boot Windows9x, MS-DOS and Linux without any problems from Lilo (there are other HOWTO's which handle multibooting from Lilo, see below for details). Problems arise when you want to add NT (since Linux and especially NT are very fond of the Master Boot Record). And integrating these two (or more) on one system is the main objective of this HOWTO.
In advance, you should always outline a solid partition scheme! This may differ a lot from mine. I used two hard disks, but it is possible to add everyting on one disk or divide it onto three disks or even more. Just read this HOWTO very carefully, and you'll find every information you need. If this ain't the case, just send me an email.
Just to make sure, I will give you a description of my PC-configuration:
For those of you who want to run DOS, Windows98 and NT 4.0, all on a FAT16 filesystem: that's a piece of cake. The purpose of this HOWTO is to explain how to run all these operating systems on one system, each using its own filesystem. This means FAT16 for DOS 6.22, FAT32 for Windows98, NTFS for Windows NT and EXT2 for Linux. Another aim was to create such a multiboot environment without using (expensive) bootmanagers. We will be using the NT OS Loader, which comes along with NT 4.0. It's free (provided you have the NT Server installation disk of course) and able to do the job.
I used two disks, adding DOS Windows98 and Windows NT to the first and Linux to the second. I also created a 1 gig FAT16 partition on the second disk which can be shared between different operating systems. If you are only using one disk, you can also use this HOWTO, you just have to make some minor modifications. This should be easier for you really. The end result on my PC looks like this:
Disk one
First logical drive: NT Server 4.0 ~ NTFS ~ 1.7 gig
Second logical drive: Windows98 ~ FAT32 ~ 4.1 gig
Disk two
Rest of this disk: Linux ~ EXT2 ~ 2 gig (more details on Linux partition scheme later on)
You can see the end result of my partition scheme (using the NT Disk Administrator to make it all look nice) here. The Unknown partitions are EXT2 Linux partitions. NT cannot identify them.
First of all it's important to know that not every operating system can read every filesystem. Windows NT cannot read FAT32 and Windows98 cannot read NTFS. There are in fact some free- drivers available which make it possible for NT to read FAT32 and for Windows98 to read NTFS. But that's the only thing they can do: read. In some cases it is possible to have read and write capacities, but that will cost you some registration-money and it's still not possible to boot them from another filesystem.
Linux is evolving in such a way that it will be able to access NTFS in the near future, but at this moment things are a little unstable. FAT32 shouldn't be a problem. It is rather ironic that Linux can read FAT32 (created by Microsoft) but Microsoft products like NT can't… The only filesystem that all those operating systems can read/write to is FAT16.
You might ask yourself why -since Windows98 has it's own version of DOS: 7.0- I installed DOS 6.22 on the primary active partition. The answer can be found in the previous paragraph. Let's assume you want to install both Windows98 and Windows NT onto one disk, divided in two partitions: An operating system is always booted from the active partition (c:). So both your Windows98 and your Windows NT startup files will end up on the same disk (c:). If you install Windows98 on the first partition, NT won't be able to read its own startup files because it can't handle FAT32. If you install Windows NT on the first partition, Windows98 will fail booting because it can't read its startupfiles on the NTFS partition. This all doesn't apply to you if you use FAT16 for all operating systems. But like a said: that's child's play.
So this is why your primary -active- partition needs to be FAT16. The easiest way is to make that partition large enough so NT and Windows98 can store their temporary installation files on that disk. If this is too complicated for you, it comes down to this: "your primary -active- partition on your first hard disk MUST be FAT16!". Because of this I decided to add DOS 6.22 on the primary partition and make my system DOS-bootable. It's not absolutely necessary to install DOS, but I'd advise you to do it.
That was my first rule. While we're at it, here is my second rule: "never create partitions using Fdisk or NT Disk Manager to create a partition/logical drive for another operating system". What do I mean? If you want to create you DOS partition: use the fdisk you find on the DOS installation disks. If you want to create your NT partition: do this during NT install. Create your Windows98 partition using the fdisk that's on the Windows98 bootup disk. Our Linux-partitions will be created using the fdisk-procedure in YaST. I've tried a lot of combinations, and none of them worked fine: operating systems that are refusing to start, partitions that cannot be converted anymore, etc…
So how did I do it? I installed the operating systems in the following order: DOS, Windows98, NT 4.0, Linux. I'm not saying this is the only way to go. I'm just saying that this works.
There are some things you need in order to succeed:
Below you'll find a step by step manual to install all operating systems:
a:\> fdisk /mbrat the DOS command prompt. We are about to create our DOS-partition:
a:\> fdisk
a:\> fdiskFdisk will tell you that it has found a large disk, and ask you whether it should use support for large disks or not. I wanted a partition of 4.1 gig for Windows98, so I said yes. You should always choose yes if you want a partition that's bigger than 2.1 gig. Now create an extended partition which covers the rest of your hard disk. Create your logical drive for Windows98 within the extended partition. Leave the rest of the disk unpartitioned!!! Turn your pc off.
a:\> format e:
g:\> setup /isNow you can continue installation. Don't forget to change the destination drive for your Windows98 system files! Just perform a normal Windows98 install. When this is finished, check if you're able to boot in DOS 6.22. You can do this by pressing F8 at the beginning of the Windows98 boot-process. When you've got you're mini-dualboot DOS-Windows98, it's time for the big brother: NT.
f:\i386> winnt /oxat the command prompt, where f: is the cdromdrive letter. You can do this by booting into dos (your DOS cdrom-drivers have got to be installed to do this) or you can open a dosbox in Windows98. Make sure your three disks are empty, high density and formatted.
f:\i386\winnt /bat the command prompt (best thing to do is to boot straight into DOS, although I think it's possible in Windows98 too in case you haven't got the appropriate cdromdrivers), where f is the cdromdriveletter. NT will now start the setup, skipping the disk-thing.
This is how my partition scheme looks like:
This is what we already had:
This is what I've created in Linux:
You can create this partition scheme during Linux install. Don't forget to format these partitions and to mount your other -non Linux- drives as well. It's also highly recommended to make a bootdisk for your fresh Linux installation.
hda1 (primary partition on first disk): MS-DOS 6.22 (400 mb)
hda2: extended partition (5.8 gig)
hda5 (first logical drive within hda2): Windows98 (4.1 gig)
hda6 (second logical drive within hda2): Windows NT (1.7 gig)
hdc1 (primary partition on second disk): FAT16 drive I mentioned earlier for sharing between operating systems
hdc2 (primary partition on second disk): /boot (10 mb)
hdc3: extended partition (2000mb)
hdc5 (first logical drive within hdc3): / (300 mb)
hdc6 (second logical drive within hdc3): swap (128 mb)
hdc7 (third logical drive within hdc3): /home (100 mb)
hdc8 (fourth logical drive within hdc3): /usr (rest, about 1.5 gig)c:\bootpart> BOOTPART DOS622 C:\BOOTSECT.622 "MS-Dos 6.22"
c:\bootpart> BOOTPART WIN95 C:\BOOTSECT.W95 "Windows 98"
c:\bootpart> BOOTPART REWRITEROOT:C:
As simple as that. Maybe you could try rebooting your system, and see whether this is working or not.
Our multiboot system is nearly finished by now. A Linux entry in the NT bootmenu will complete things. Type
c:\bootpart> bootpart
at the command prompt in your DOS-box in NT. This will result in a list of all your partitions. There you should search for the number of your Linux root partition. When you know this one, you just type
c:\bootpart> BOOTPART $linuxpartition$ BOOTSECT.LIN Linux Redhat 6.0
in your bootpart directory. You should fill in the corresponding partition number where I typed $linuxpartition$. This should be the partition where you created the bootsector (your root or / partition!). If all goes well, an entry will be made in your boot.ini and thus in the bootmenu from NT.
http://www.windows-nt.com/multiboot/directboot.html
http://metalab.unc.edu/LDP/HOWTO/mini/Linux+NT-Loader.html
http://venus.kulnet.kuleuven.ac.be/LDP/HOWTO/mini/Multiboot-with-LILO.html
http://world.std.com/~mruelle/multiboot.html
http://metalab.unc.edu/LDP/HOWTO/mini/Linux+Win95.html
ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/unmaintained/mini/Linux+DOS+Win95
http://www.bcpl.lib.md.us/~dbryan/directboot.html
http://hpmag.cern.ch/computing/dict/b/boot/index.html
If you know other interesting pages regarding this subject, or you have any comments, please feel free to contact me.
Last update: September 25, 1999