How to Install GRUB Bootloader on Pure NTFS System for Dual-Booting Windows XP Instances


2 views

Setting up two completely isolated Windows XP installations on separate primary partitions presents unique bootloader challenges. The conventional approach requires a Linux filesystem for GRUB installation, but we can achieve this on a pure NTFS system through specific techniques.

  • Two primary NTFS partitions (minimum 8GB each for XP)
  • Windows XP installation media (two distinct licenses)
  • GRUB4DOS package (latest version)
  • Administrative access to the system

Step 1: Partition Preparation

Using Disk Management or diskpart:

diskpart
select disk 0
create partition primary size=8192
create partition primary size=8192
format quick fs=ntfs label="XP1"
format quick fs=ntfs label="XP2"

Step 2: GRUB4DOS Deployment

Download and extract GRUB4DOS to your C: drive (first partition). Essential files needed:

  • grldr
  • menu.lst
  • grub.exe

Modify boot.ini to include GRUB entry:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP First Instance" /fastdetect
C:\grldr="GRUB Bootloader"

Create menu.lst in the root directory with dual-boot entries:

timeout 10
default 0

title Windows XP Instance 1
rootnoverify (hd0,0)
chainloader +1

title Windows XP Instance 2
rootnoverify (hd0,1)
chainloader +1

For better isolation, modify each XP registry to prevent cross-partition visibility:

In regedit for each instance:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Z:"=hex(3):5c,00,5c,00,3f,00,5c,00,43,00,3a,00,00,00

Common issues and fixes:

  • GRUB not loading: Ensure grldr is in root and boot.ini points correctly
  • Invalid partition: Verify partition numbering starts from 0 in GRUB
  • Boot sector issues: Run bootsect /nt52 SYS from recovery console

When running multiple XP instances:

  • Allocate at least 512MB RAM per instance
  • Disable unnecessary services in each installation
  • Use fixed-size pagefiles on each partition

When setting up multiple independent Windows XP installations, traditional bootloader solutions like NTLDR become problematic. GRUB offers superior flexibility but typically requires a Linux filesystem. Here's how to implement this in pure NTFS environments.

1. Two primary NTFS partitions (minimum 15GB each)
2. Windows XP installation media (two unique licenses)
3. GRUB4DOS package (latest stable version)
4. Bootable USB with DOS utilities

Partition Preparation

Using diskpart:
> diskpart
DISKPART> select disk 0
DISKPART> create partition primary size=15360
DISKPART> create partition primary size=15360
DISKPART> format fs=ntfs quick
DISKPART> assign letter=W
DISKPART> assign letter=X

GRUB Installation Process

After installing both Windows XP instances (install to W: and X: drives respectively):

1. Copy these files to C:\ (first active partition):
   - grldr (from GRUB4DOS)
   - menu.lst
   - unifont.hex (optional font)

2. Create C:\boot.ini with:
[boot loader]
timeout=30
[operating systems]
c:\grldr="GRUB Boot Manager"

Sample menu.lst Configuration

timeout 30
default 0

title Windows XP Installation 1
rootnoverify (hd0,0)
chainloader /ntldr

title Windows XP Installation 2
rootnoverify (hd0,1)
chainloader /ntldr

title Windows XP Safe Mode 1
rootnoverify (hd0,0)
chainloader /ntldr /safeboot:minimal

Hiding Partitions Cross-Boot

Add this to each Windows XP registry (HKLM\SYSTEM\CurrentControlSet\Control\Session Manager):

"BootExecute"=hex(7):61,00,75,00,74,00,6f,00,63,00,68,00,65,00,63,00,6b,00,20,\
00,61,00,75,00,74,00,6f,00,63,00,68,00,6b,00,20,00,2a,\
00,00,00,00,00

Performance Optimization

# In menu.lst:
graphicsmode -1 1024
splashimage /boot/splash.xpm.gz
font /boot/unifont.hex

Common issues and solutions:

  • Error 17: Adjust rootnoverify statements to match your partition table
  • Missing operating system: Verify active partition flag
  • GRUB not loading: Check boot.ini syntax and file locations