Grub4dos Guide - Example Multiboot Setup


NOTE - throughout the following section an older build of Grub4dos was used during testing (version 0.4.3 build 2008-03-14).

An understanding of the information in the preceding sections of this guide is assumed.

The following walkthrough describes how to create a multiboot setup using Grub4dos, with options for Windows 2000; Windows XP; Windows Vista; and Puppy Linux operating systems. Installation instructions for individual operating systems are not provided, as the intention of the walkthrough is to give an overview of using Grub4dos. There are various ways to create a multiboot setup - this is only one method.

The system will be comprised of two separate hard disks, with the following partition structure -

Device Operating System Partition Type Partition Size
(hd0,0) Windows 2000 NTFS 5GB
(hd0,1) Windows XP NTFS 10GB
(hd0,4) Linux Puppy FAT 200MB
(hd0,5) N/A - Data FAT 32 -
(hd1,0) Windows Vista NTFS 20GB

As you can see from the table above, the Windows 2000 and Windows XP partitions are primary, whilst the Puppy Linux and Data partitions are logical volumes in the extended partition. Lastly, Windows Vista is installed on a separate disk. Following the installation of the operating systems, Grub4dos will be configured to hide the OS partitions from each other. The Data Partition (hd0,5) will be accessible from all systems.

Requirements include - Operating System installation media.

The following instructions assume that the HDD's are unpartitioned. This section will focus on the first disk (hd0) - the Vista disk (hd1) will be covered later. To create the partition structure we will install the first operating system (Windows 2000) and then use the Windows disk management console to create the rest.

Attempting to install Windows Vista to (hd1) will result in the BCD store and other boot files being written to the active partition on (hd0). To avoid this, temporarily remove (hd0) from the system (either disable the disk in the BIOS settings or physically remove it by disconnecting the IDE/SATA lead). Make sure that the Vista disk is set as "Master" and install Windows Vista from the installation DVD.

When the Vista installation has completed, reconnect the first hard disk and set it as "master", and set the Vista disk as "slave".

Reboot the PC, you should boot into Windows XP, as (hd0,1) is still the active partition.

To create the Grub4dos boot configuration file menu.lst, open notepad and enter the following text -

color light-blue/blue light-red/red
timeout 10
default 1

Now save the document as menu.lst (make sure it is not saved as menu.lst.txt).

To create an option for Windows 2000 add the following text -

title Windows 2000
chainloader (hd0,0)/ntldr
rootnoverify (hd0)

or,

title Windows 2000
chainloader (hd0,0)+1
rootnoverify (hd0)

As we do not want the other operating systems to be accessible from Windows 2000, we will need to add hide and unhide entries for the other partitions. Edit the Windows 2000 entry to -

title Windows 2000
unhide (hd0,0)
hide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)+1
rootnoverify (hd0)

If the Windows 2000 menu entry is selected, the only visible partitions will be (hd0,0) and (hd0,5) - the Windows 2000 partition and the shared data partition respectively.

To create an option for Windows XP, add the following text/entry -

title Windows XP
hide (hd0,0)
unhide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)+1
rootnoverify (hd0)

or,

title Windows XP
hide (hd0,0)
unhide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)/ntldr
rootnoverify (hd0)

To create an entry for Linux Puppy, add the following text/entry -

title Linux Puppy
hide (hd0,0)
hide (hd0,1)
unhide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
find --set-root /vmlinuz
kernel /puppy400/vmlinuz pmedia=idehd psubdir=puppy400 pkeys=uk
initrd /puppy400/initrd.gz

or,

title Linux Puppy
hide (hd0,0)
hide (hd0,1)
unhide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
kernel (hd0,4)/puppy400/vmlinuz pmedia=idehd psubdir=puppy400 pkeys=uk
initrd (hd0,4)/puppy400/initrd.gz rootnoverify (hd0,4)

To create a Windows Vista entry we will need to use the map command to change the hard disk order, as Vista will not boot from a non first hard disk. Use the following command -

title Windows Vista
hide (hd0,0)
hide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
unhide (hd1,0)
map (hd1) (hd0)
map (hd0) (hd1)
map --hook
find --set-root /bootmgr
chainloader /bootmgr
rootnoverify (hd0)

The menu.lst file should contain similar entries to the following -

Finally, Grub4dos will need to be installed by following the instructions here, and grldr and menu.lst will need to be copied to a supported device.