Booting a MS Windows OS using GRUB is a quite simple process. However, we must follow some rules in order to succeed. The first and foremost rule is:
Grub starts its hard drive and partition numbering system from 0. This means that (hd0,0) refers to a first hard drive and first primary partition. Whereas, (hd2,2) refers to third hard drive and third primary partition. All extended partitions starts from number 4. Therefore, (hd1,5) refers to a second hardrive and second extended partition.
In case you have indeed installed your MS Windows on a first hard drive and first partition the whole process is rather simple. Open up a Grub's menu config file:
vi /boot/grub/menu.lst
and add a following code into appropriate boot menu section :
title Microsoft Windows XP Professional root (hd0,0) makeactive chainloader +1
save file and run command:
# update-grub
and you are done.
In case you have a MS Windows installation on a third hard drive, things are little bit more complicated. Here is a /boot/grub/menu.lst code for booting a MS Windows from a third hard drive and first partition.
title Microsoft Windows XP Professional rootnoverify (hd2,0) map (hd0) (hd2) map (hd2) (hd0) savedefault makeactive chainloader +1
After you have updated /boot/grub/menu.lst run:
# update-grub
and you are done.