Install Windows XP - Grub4dos Workaround


Note - this section also applies to syslinux version 3.81/3.82 (and possibly newer versions).

If using grub4dos and newer versions of syslinux it is not possible to install Windows XP via RIS as the Windows XP source files (ntdetect.com, setupldr.ex_ and startrom.n1_) result in the following error(s) -

To boot XP via RIS you will need to use ntdetect.com, setupldr.ex_ and startrom.n1_ from Windows 2003 source (tested with SP1 and R2). Copy these files to C:\PXE\tools\xp_ris_hack\ and follow the instructions below -

Steps 1-7 (below) can be automated by running 6b_RIS_xp_hack.cmd

  1. Extract startrom.n12 from C:\PXE\tools\xp_ris_hack\STARTROM.N1_ to C:\PXE\tftpboot\ . Open a command prompt and enter the following command -
    C:\PXE\tools\7za.exe e C:\PXE\tools\xp_ris_hack\startrom.n1_ -o"C:\PXE\tftpboot" startrom.n12
  2. Extract setupldr.exe from C:\PXE\tools\xp_ris_hack\setupldr.ex_ to C:\PXE\tftpboot\  by entering the following command -
    C:\PXE\tools\7za.exe e C:\PXE\tools\xp_ris_hack\setupldr.ex_ -o"C:\PXE\tftpboot" setupldr.exe
  3. Copy ntdetect.com from C:\PXE\tools\xp_ris_hack\  to C:\PXE\tftpboot\ 
    copy C:\PXE\tools\xp_ris_hack\ntdetect.com C:\PXE\tftpboot
  4. Open notepad and enter the following text, then save as C:\PXE\tftpboot\winnt.sif (remember to change the IP address for the server if it was not set as 192.168.2.2 - refer to Winnt.sif section) -
    [SetupData]
    OsLoadOptions = "/fastdetect"
    ; Needed for first stage
    SetupSourceDevice = "\Device\LanmanRedirector\192.168.2.2\tftpboot\winxp"

    [data]
    floppyless = "1"
    msdosinitiated = "1"
    ; Needed for second stage
    OriSrc = "\\192.168.2.2\tftpboot\winxp\I386"
    OriTyp = "4"
    LocalSourceOnCD = 1
    DisableAdminAccountOnDomainJoin = 1
    AutoPartition=0

    [UserData]
    ; ProductID=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
    ComputerName="*"
  5. Rename C:\PXE\tftpboot\startrom.n12 as startrom.0
  6. Rename C:\PXE\tftpboot\setupldr.exe as ntldr
  7. Add a menu entry -

If you plan to add options to install another operating system via RIS or to add a Windows XP/2003 based WinPE image then follow the instructions below as ntdetect.com, ntldr, startrom.0 and winnt.sif will need to be renamed and the embedded settings within these files will need editing.

To automate the following steps run 6b_RIS_xp_hack.cmd to complete steps 1-6, then run 6c_RIS.cmd -

To install XP to a client PC ensure that C:\PXE\tftpd32\tftpd32.exe and C:\PXE\binl\binlsrv.exe have been started, then boot the client PC using PXE boot option and select the Install Windows XP menu option.