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