Triple Boot - How to install Win98SE, WinXP Pro, and Linux on 2 hard drives


Cautionary Note on back up (better safe than sorry):
First, before starting anything, make sure you fully backup your critical files. If something goes wrong during this procedure you can easily lose everything if you have no backup. However, if it goes smoothly then you will not need the backup.


  1. Plan your partition layout. You will need a partition for Win98SE, one for WinXP and one for Linux.

    The procedure outlined is based on my own triple boot setup.


    The following is my triple boot partiton set up:
    Make & Capacity IDEPORT Linux Designation Win98SE Designation Mbytes Usage Partition Type O/S
    Seagate 40 Gb 0-0(m) hda ---- 38162 100%    
        hda1 C: 4118   FAT32 Win98SE
        hda5 D: 17022   FAT32  
        hda6 E: 17022   FAT32  
                   
    Seagate 40 Gb 0-1(s) hdb ---- 38162 100%    
        hdb1 --: 11005   NTFS WinXP
        ---- ---- 27157   ExLBA FAT32 & Linux
        hdb5 F: 18693   FAT32  
        hdb6 ---- 4903   EXT3 Linux /
        hdb7 ---- 494   NA Linux swap
        hdb8 ---- 3067   EXT3 Linux /usr

    My O/Ses and their locations:
    Win98SE       - in Primary partition on disk 1 (Master on IDE:0-0)
    WinXP Pro    - in Primary partition on disk 2 (Slave on IDE:0-1)
    Linux (Mandrake10) - in Extended partition on disk 2 (Slave on IDE:0-1)


  2. The steps: This is how it is done.

    1. Install Win98SE (Note: this is your primary DOS partition - 'drive C'). (Linux sees this as hda1)

    2. Just to save your sanity, I recommend using 'fdisk' and create a primary and an extended partition on the second hard drive. This way you avoid having to get WinXP install to only use part of the hard drive. You just need to tell it to use the primary partition.

    3. In your extended partition you may create logical FAT32 partitions if required. Leave enough unused logical drive space for Linux though.

      I created an 11GB primary drive for WinXP to use and allocated 18.6 GB logical drive (FAT32) for windows to use leaving the rest (8.5 GB) to be used by Linux.

    4. Install WinXP on the primary partition of the second hard drive (Linux sees this as hdb1).

      You have two formatting options, NTFS or FAT32. Select NTFS for the file system when prompted. Yes I know you can use Fat32; however, I don't recommend it so Win98SE can't screw up WinXP. Also NTFS is a far better filesystem. WinXP performs best when using NTFS partitions. WinXP has built-in security features that use the NTFS file system.

    5. Install Linux (Mandrake 10) in the extended partition of the second hard drive.

      Choose 'lilo' (graphical or text mode - I prefer graphical) when prompted and (for now) put it in the MBR. We will move it later to the partition where your /boot will reside (NOT in the MBR). In this example boot is within the "/" partition which is located on the hdb6 partition.

      This will replace the NT boot loader installed by WinXP. However, before Linux does that it will take a backup of the current NT Boot loader in case a user wants to uninstall the Linux boot loader.

    6. If you wish to use LILO as your boot loader then you may skip this section. However, if like me, you wish to use the NT BOOT Loader then the next steps show you how to achieve that.

      Procedure to replace LILO Boot Loader with the NT Boot Loader.

      • Boot and Login in to Linux. Open a terminal window and Su as root. Restore your original NT Boot Loader by typing:
        lilo -U.

      • Still as root, modify your LILO so that it is loaded where your /boot resides. In this example that will be hdb6. This can be done by tools or manually by editting the /etc/lilo.conf file .

        If editting manually then: As 'root', edit '/etc/lilo.conf': the first line of lilo.conf will read boot=/dev/hda, change the 'hda' to whereever the '/boot' partition is located in this case hdb6 (i.e. boot=/dev/hdb6). Then update lilo by typing:
        /sbin/lilo -v

      • Copy the new boot sector information to a file. You will need to su as root.

        Make a copy of the new boot sector with dd if=/dev/hd[x][n] bs=512 count=1 of=man10.lnx
        Note: hd[x][n] is where the '/boot' partition is, where
        [x] denotes the hard drive and
        [n] denotes the partition in it.
        In my case this is
        dd if=/dev/hdb6 bs=512 count=1 of=man10.lnx

      • Copy the linux bootsector file (man10.lnx) to the windows 'C: drive' as follows:
        cp man10.lnx /mnt/win_c

      • Exit from Linux and Boot into Windows 98SE.
        Modify the 'boot.ini' on the 'C: drive' by appending a line for Linux pointing to the location of the copied LILO boot sector: Note - The default in the example below is set for Microsoft Windows 98SE

        [boot loader]
        timeout=15
        default=C:\
        [operating systems]
        multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="MS WinXP Pro" /fastdetect
        C:\="Microsoft Windows 98SE"
        C:\man10.lnx="Linux Mandrake 10"

        For different defaults replace default line as follows:
        default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
        default=C:\man10.lnx

    7. Reboot and your chosen Boot loader (LILO or NT Boot Loader) will give you the boot menu option of OS'es to select. Select OS as desired.


  3. Now your triple-boot system is complete - Enjoy your triple-boot system - Some notes on access

    As far as access to the filesystem of the three OSes is concerned you will be able to do the following:

    1. Linux will be able to access Windows 98 filesystem but not Windows XP filesystem.

    2. Windows XP will be able to access Windows 98 filesystem but not Linux filesystem.

    3. Windows 98 will not be able to access either Linux or Windows XP filesystems.
      Assuming you installed WinXP using NTFS (as recommended) and not FAT32.

    4. It is possible to allow both Windows 98 (FAT32) and WinXP (NTFS) to access the same files. This can be achieved by siting the files you want shared between the two OSes either on the Windows 98 partition or on another FAT32 partition.


    NOTE - This procedure can also be used for other combinations of windows as follows:

    Win98SE    - Can be any of Win95 / Win95R2 / Win98 / Win98SE / Windows ME
    WinXP Pro - Can be any of WinXP / Win2k / WinNT
    Linux            - Can be either Mandrake or Redhat (Other flavours of Linux should also work)


© MAK 2004
End of Document