There are two ways to have Syslinux coexist with Windows 7 or Windows Vista. The traditional way, of course, is to mark the Syslinux partition active and use Comboot/chain.c32 to boot Windows:
# Windows 7 on partition hd0,1 (hda1) LABEL win7 MENU LABEL ^Windows 7 COM32 chain.c32 APPEND hd0,1
However, Windows 7 and possibly Windows Vista, is known not to hibernate properly in this configuration. For that case, or for those who prefer to minimize the impact on Windows, Syslinux can be booted from the Windows boot manager, BCD.
To do that, you need to install Syslinux normally, and then install NeoSmart EasyBCD. Create a new boot entry of type Linux/BSD > LILO/eLILO. Although Syslinux is not LILO, they work identically for the purpose of EasyBCD.
Note that EasyBCD saves a copy of the Syslinux bootsector onto your BCD partition, possibly in
/NST/nst_linux.mbr. If you don't have a separate BCD partition (some versions of Windows will install one, others will not) then your BCD partition is your Windows partition. As such, it is necessary to update this file if Syslinux is updated. If the BCD partition is mounted on
/bcd in Linux, and your
/boot drive is
/dev/sda1, then you would do that with the command:
dd if=/dev/sda1 of=/bcd/NST/nst_linux.mbr bs=512 count=1