Try: title Windows XP map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) chainloader +1
Works for me.
Also for me. It was the solution, but I don't understant exactly why.
According the GRUB manual and RHEL knowledge database article (http://kbase.redhat.com/faq/FAQ_43_4053.shtm):
" The next two lines /map (hd1) (hd0), map (hd0) (hd1)/ use the disk swapping technique, because that O/S cannot boot from any disks but the first one. This performs a "virtual" swap between your first and second hard drive."
In my system:
[root@seth ~]# fdisk -l
Disco /dev/hdb: 40.0 GB, 40020664320 bytes 255 cabezas, 63 sectores/pista, 4865 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disposit. Boot Start End Blocks Id System /dev/hdb1 * 1 4865 39078081 83 Linux
Disco /dev/sda: 160.0 GB, 160041885696 bytes 255 cabezas, 63 sectores/pista, 19457 cilindros Unidades = cilindros de 16065 * 512 = 8225280 bytes
Disposit. Boot Start End Blocks Id System /dev/sda1 * 1 10445 83891399 7 HPFS/NTFS /dev/sda2 10446 10476 249007+ 83 Linux /dev/sda3 10477 19203 70099627+ 83 Linux /dev/sda4 19204 19457 2040255 82 Linux swap
And AFAIK the /dev/sda is primary disk and /dev/hdb is slave disk, so the reason why it didn't run isn't clear. Maybe I'm wrong about the disks disposition... perhaps I have to open box case and confirm it...