[syslinux] Incompatibility using pxelinux 3.80 or later and setupldr.exe from windows XP 32 bits

Thierry Bugier tbugier at yahoo.fr
Sat Aug 15 08:06:57 PDT 2009


Hello

I'm working on my RIS server; I got a problem when I use pxelinux.0 to
load setupldr.exe from windows XP 32bits (both home and corporate)

Here is how I configure a working server, then how to modify it to
reproduce the bug:
=========================

I suppose you got
-a dhcp server configured to load pxelinux.0 to client computer.
-a working tftp server (mine is tftpd-hpa, with a rule to convert
backslashes to slashes ans to convert uppercase to lowercase)

First, let start textmode setup without pxelinux

use cabextract to get startrom.n12 from your windows source
(/i386/startrom.n1_). Rename it to pxelinux.0, put it in your tftp root
use cabextract to get setupldr.exe from your windows source
(/i386/setupldr.ex_). Rename it to ntldr, put it in your tftp root
copy from your windows source ntdetect.com to your tftp root.

Start the client computer the windows textmode setup will fail because
he cannot find winnt.sif. I'm using the french windows source: the error
message is
"Le fichier INF winnt.sif est endommagé ou manquant, statut 21"
The PXE server is working.

Reproducing the bug
=========================


Create in yout tftp root a folder named pxelinux.cfg
Create pxelinux.cfg/default with thid content

    DEFAULT menu.c32

    TIMEOUT 0
    PROMPT  0

    MENU TITLE Multiboot

            LABEL Windows XP Home
                KERNEL startrom.0

    MENU END

rename pxelinux.0 in yout tftp root into startrom.0 (this is
startrom.n12 from windows source)
copy from syslinux 3.81 the file pxelinux.0 into yout tftp root
copy from syslinux 3.81 the file menu.c32into yout tftp root

When you launch your client computer and select "Windows XP Home" the
textmode setup will start and stop on the message
"Le fichier INF j8??j9,,j:??j;??j<??j=??j>??,???? est endommagé ou
manquant, sta."
The filename cannot be reproduced: most of characters are non
alphanumerics characters. I replaced them by question marks.
Here is the filename as received by the TFTP server :
RRQ from 192.168.0.173 filename
j8ë#002j9ë#002j:ë#002j;ë#002j<ë#002j=ë#002j>ë#002j?éq<8D

The bug can be reproduced with syslinux strictly later than version 3.75

I cannot investigate more about the bug.

If you replace pxelinux.0 and menu.c32 with version 3.75 and earlier,
the textmode setup works fine.




More information about the Syslinux mailing list