"Linux Gazette...making Linux just a little more fun!"


Multiboot MS-DOS 6.22 - Windows98 - Windows NT Server 4.0 - Linux

By Tom de Blende


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

Primary – active- partition: MS DOS 6.22 ~ FAT16 ~ 400 mb
First logical drive: NT Server 4.0 ~ NTFS ~ 1.7 gig
Second logical drive: Windows98 ~ FAT32 ~ 4.1 gig

Disk two

Primary partition: Backup- and sharespace ~ FAT16 ~ 1 gig
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:

  1. Make sure your first hard disk is properly installed and that it is completely unpartitioned. You can check this by running fdisk (option 4 in the fdisk-menu). If you cannot access c:, chances are your hard disk is unpartitioned, but it might very well be unformatted as well so always check it with fdisk. If there are any partitions, delete them (your primary partition as well). It is not necessary to have your second hard disk inserted yet. It should –however- be inserted by the time you are going to install Windows98!!! The reason for this is quite simple: if the second drive isn't inserted, Windows98 will be installed on the d: drive. Now when you insert your second hard disk, this will become automaticaly the e: drive. Fysical drives have priority to logical drives and extended partitions. If all the Windows98 files are suddenly situated under another drive-letter, Windows98 will refuse to boot. There is just one way to prevent this from happening (besides adding the second hard disk before installing Windows98): creating no primary partition on the second disk, only extended/logical partitions. The choice is up to you.

  2. Insert your bootable install disk of DOS 6.22. If the blue screen appears, don't choose to install DOS yet. Just exit installation by pressing F3 twice. First of all we are going to clean out our Master Boot Record. You can do this by typing:
    a:\> fdisk /mbr
    
    at the DOS command prompt. We are about to create our DOS-partition:
    a:\> fdisk 
    
  3. Now you can create your primary DOS-partition. I made it 400 meg. Since this partition is created with the fdisk of DOS 6.22, this partition automatically is a FAT16 partition. Don't forget to make this partition active! Just leave the other free space on the disk unpartitioned!!!

  4. Reboot your pc for changes to take effect. Again boot from the DOS install disk. Now you can choose to install DOS. The install wizzard will ask you whether it should format the freshly created drive. Do this and just install DOS onto your c-drive. If you're not sure HOWTO install DOS, I suggest you stop reading now and find yourself another hobby.

  5. Time has come to install Windows98. Insert your Windows98 bootdisk. Boot from the disk like you always do. It's not necessary to boot with cdrom-support just yet. Run the fdisk utility:
    a:\> fdisk 
    
    Fdisk 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.

  6. AT THIS TIME YOUR SECOND HARD disk MUST BE CONNECTED TO YOUR SYSTEM. This doesn't apply to you if you only use one hard disk or if your second hard disk hasn't got a primary partition. I've created a 1 gig FAT16 primary partition on that disk. I use it to store all my files that I need in different operating system, and strongly advise you to create a FAT16 drive as well but that's up to you and has no influence on the rest of this HOWTO (you can also use your c: drive for this). I, for example, store my Netscape mail profile and My Documents on that disk (they can be shared between NT and Windows98).
    Reboot your pc. Don't forget to add cdrom-support when you reboot. I guess it's quite obvious that you'll have to format your freshly created FAT32-partition, but just to be on the safe side: now you must format your new partition. That partition will now have driveletter e: assigned!
    a:\> format e:
    
  7. Everything is ready now to install Windows98. Just switch to your cdrom drive letter (it should be g: since Windows98-boot disk created a RAM-drive on f:) and type setup. I experienced some problems here regarding the default scandisk during setup. Windows found an error (which wasn't an error really) on my second hard disk. Although setup told me that I could select the option "continue" later on, if I knew for sure that everything on that disk was allright, I never had the chance to do this. Setup wasn't prepared to continue due to errors (and I know for sure that it wasn't an error but just a partition a diskmanager had created) on the second disk. But this disk had to be inserted in order to install Windows on e:. I've searched and searched in the *.txt files on the Windows98 disk, and this is how you can avoid the standard scandisk and fly straight into the setup itself:
    g:\> setup /is
    
    Now 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.

  8. Now there are two possibilities. If you already have your three NT install disks, than you can jump to 10. If you don't have these disks, you should create them by changing to the \i386 folder on your cdrom and typing
    f:\i386> winnt /ox
    
    at 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.

  9. Now you are ready to install Windows NT. The good news is that the disks you've just created, won't be used. The reason why I've let you make those disks is that they come in very handy when you are experiencing problems or to repair an NT installation. When you do a normal NT install (without switches), NT will ask you to make those disks, and also boot from it to continue the install. Creating those three disks and later on loading the install program from those same disks takes a lot of time.

  10. When you already have your disks (either you've just created them or you had them all along), you can save a lot of time by typing:
    f:\i386\winnt /b
    
    at 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.

  11. I'm not going to run through the whole install procedure here. Just a few things you must pay attention to. In the textbased setup stage you will be asked where you want the NT-files to be stored. You'll be able to choose between installing NT on your c: drive or creating a new partition in the unpartitioned space. It goes without saying that you should create a new partition. You do this by selecting the unpartitioned space and pressing "c". Now you can enter the required size of your NT-drive (I made mine 1.7 gig). Also don't forget to convert your NT-drive to NTFS and format it. Continue the installprocedure. Reboot your pc when finished.

  12. If all went well, there should be an entry in the NT OS Loader for MS-DOS and for Windows NT (normal mode and safe/vga mode). Try booting in DOS and NT to see if everything still works OK. If you select the "MS-DOS" option in the loader, Windows98 will be started. When you don't want to boot into Windows98 but straight into DOS, the old rule applies: press F8 as fast as you can after selecting "MS-DOS" and pressing the enter-key. There is a way to add both DOS and Windows98 in your bootmenu.

  13. That's it! You've got your dualboot (it's even a small multiboot) into DOS, Windows98 and Windows NT. If all went well, every operating system should use its own filesystem. You can check this. You can see now that in Windows98 there is no additional drive where you can see the Windows NT files. When you boot into Windows NT you will see the Windows98 drive, but you won't be able to access it. If you can access this drive, or you can access the Windows NT drive in Windows98, then you've got a problem. Filesystems are not correct.

  14. You might find it rather annoying that you cannot access those drives. The good news is that you can use two little programs in order to make those drives accessible (read-only!). To be able to read your Windows98 drive in WindowsNT you should download the program FAT 32. If you want read/write access you should register the program (and pay). If you want access to your WindowsNT drive in Windows98, you should download the program NTFSDOS. This program is also offering you read-only capacities only. There is no read/write version available though. Downloading these programs is just a hint, you don't have to do this now, but it can be useful. It won't affect your multiboot in any other way, and they are not necessary for continuing this HOWTO.

  15. Time has come to add your final operating system to your pc. I've installed Linux Redhat 6.0. First of all you should check whether your multiboot environment is functioning without Linux. If this is the case, boot your pc using the Linux boot disk. I'm not going to give you an exhaustive manual on HOWTO install Linux. I couldn't be doing a better job than the manual which comes along with this software.

  16. It is very important to have a solid partition scheme. I had about 2 gig available for Linux on my second disk.

    This is how my partition scheme looks like:

    This is what we already had:
    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

    This is what I've created in Linux:
    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)

    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.

  17. The tricky part is configuring Lilo. You must keep Lilo OUT OF THE MBR! The mbr is reserved for NT. If you'd install Lilo in your mbr, NT won't boot anymore. I've placed the Lilo configurationfiles in the /boot partition (hdc2 or /boot). You should point Lilo to the root partition (/ or hdc5) instead of the mbr when you are prompted to specify where the bootsector must be created. I first specified the bootpartition here (/boot or hdc2). That looked quite obvious to me. The result was that Linux was unable to boot. So you MUST specify your root here. YaST will also ask you whether it should activate this partition. DON'T let YaST activate this partition. Your c: drive must remain your active partition, otherwise NT won't boot anymore.

  18. If Linux is properly installed, time has come to add all the operating systems to the NT bootmenu. I've used the excellent (freeware!!!) program BootPart for this. When you run bootpart from a dosbox in NT, you'll get an overview of all your partitions again. This is quite a list by now. To add both Windows98 and DOS to the menu (without using the boring F8 key) just type these commands from your command prompt in a DOS-box in NT:
    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.

  19. That's it! Everything should be fine by now. If you need some more info on BootPart, you can read the readme.txt file that's included in the zipfile. If you don't want to use this (really easy to use, free and excellent) software, you can do all this manually. I'm not going to explain to you how (it's really not worth the hassle). You should visit http://www.windows-nt.com/multiboot/directboot.html for more info on this matter.

Hopefully my efforts here were not in vain. I tried to give you as much details as possible, without going to much into detail. If something (for some reason or another) isn't working on your system, or I made a mistake, please let me know and help me keeping this info as good as possible. You can always mail me at bever@phreaker.net.

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


Copyright © 1999, Tom de Blende
Published in Issue 47 of Linux Gazette, November 1999


[ TABLE OF CONTENTS ] [ FRONT PAGE ]  Back [ Linux Gazette FAQ ]  Next