Basically we need to clone partition & fix its boot sector(otherwise no go).
1. Clone partition.
To clone partition you can use ntfsclone tool which is a part of ntfsprogs package & is installed by default in Ubuntu:
ntfsclone --overwrite /dev/dest /dev/source
eg:
ntfsclone --overwrite /dev/sda2 /dev/sdb2
2. Fix the NTFS boot sector.
If the starting partition sector number is wrong in the partitions boot sector, windows would not be able to boot. So we need to fix it.
Find out the sector number of the cloned partition:
fdisk -ul /dev/sda
Device Boot Start End Blocks Id System
/dev/sda1 * 63 250262206 125131072 af HFS / HFS+
/dev/sda2 250262207 383937434 66837614 7 HPFS/NTFS
/dev/sda3 383940522 634202665 125131072 af HFS / HFS+
/dev/sda4 634202666 976773167 171285251 5 Extended
/dev/sda5 634202667 741886690 53842012 83 Linux
/dev/sda6 741886740 976773167 117443214 7 HPFS/NTFS
Our partition in this case is /dev/sda2 and it starts at sector 250262207
We need to convert to hex:
printf "%x" 250262207
This will give us
eeab2bf
We need to align this value to byte, eg will add leading zero:
0e ea b2 bf
Now using hexedit we will put this value into NTFS boot secter starting from address 0x1c from lower byte to higher byte, eg.:
bf b2 ea 0e
Hexedit is not installed by default in Ubuntu, so run apt-get install hexedit.
hexedit /dev/sda2

Then pres Ctrl+X and confirm save with "y"
That's it! Then use the boot loader of your choice :)
