Boot Windows with Syslinux

To install Syslinux on an NTFS partition to boot Windows XP:

  1. Download and extract the latest Zip file from: https://www.kernel.org/pub/linux/utils/boot/syslinux/
    This file contains code for Windows and Linux systems, only copy files from within the “bios” folder.
  2. Create the directoriy structure on the active NTFS partition: C:\boot\syslinux
  3. Within the extracted folders, find and copy from the syslinux-x.xx\bios\com32 folder:
     chain.c32, config.c32, libcom.c32, libmenu.c32, ls.c32, menu.c32, vesamenu.c32, ldlinux.c32, syslinux.sys
    Copy to C:\boot\syslinux\
  4. To install the bootloader to the MBR:
    1. cmd.exe
    2. cd syslinux-x.xx\bios\win32
    3. syslinux.exe –directory C:\boot\syslinux –install –mbr
  5. Create the config file C:\boot\syslinux\syslinux.cfg
    containing something like:

UI menu.c32

DEFAULT WindowsXP
TIMEOUT 30

LABEL WindowsXP
MENU LABEL Windows XP
COM32 chain.c32
APPEND ntldr=/ntldr

*The file needs to be in plain text, not UTF-8 – recommend a compact Windows text editor such as TED Notepad which can be configured to save in Unix style text.

The above steps fixed a problem we were getting on a Windows XP guest converted from VMware to KVM, where the guest would hang, stuck at boot with the message “Booting from Hard Disk…”.