For pxe server setup you can refer my previous post.

Enabling rpmforge repository

cd /root
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
rpm -ivh rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum install cabextract -y
yum install tftp-server tftp samba -y

Mount XP CD image (I am using XP with Service Pack 3) and copy i386 folder to the directory from where you are going to start the installation

mkdir /mnt/iso
mount xpsp3.iso /mnt/iso
mkdir /tftpboot/winxp/i386/ -p
cd /mnt/iso/i386
cp -av * /tftpboot/winxp/i386/

Also copy drivers to i386 folder. I have collected some drives you have to download & copy them to i386 folder

cd /root
wget http://downloads.sourceforge.net/project/bootfloppy/pxefiles.tar.gz?use_mirror=space
tar zxvf pxefiles.tar.gz
cd pxefiles/drivers
cp * /tftpboot/winxp/i386/
cd /tftpboot/winxp/i386/
cabextract driver.cab

Creating file of windows for pxe boot

cd /tftpboot/winxp
cabextract /tftpboot/winxp/i386/startrom.n1_
sed -i -e 's/NTLDR/XPLDR/gi' startrom.n12
mv startrom.n12 winxp.0
 
cabextract /tftpboot/winxp/i386/setupldr.ex_
sed -i -e 's/winnt\.sif/winxp\.sif/gi' setupldr.exe
sed -i -e 's/ntdetect\.com/ntdetect\.wxp/gi' setupldr.exe
mv setupldr.exe xpldr
 
cp /tftpboot/winxp/i386/ntdetect.com ntdetect.wxp

Changing the file name case if they are in uppercase

cd /tftpboot/winxp/i386/
ls | awk '$0!=tolower($0){printf "mv \"%s\" \"%s\"\n",$0,tolower($0)}' | sh

Creating samba share
Add this to your existing or new /etc/samba/smb.conf

vi /etc/samba/smb.conf
[Global]
workgroup = WORKGROUP
 
[ris]
path = /tftpboot
browsable = true
read only = yes
writable = no
guest ok = yes
chkconfig --level 35 smb on
service smb restart

Creating Response file

cd /tftpboot/winxp
vi winxp.sif
[data]
floppyless = "1"
msdosinitiated = "1"
; Needed for second stage
OriSrc = "\\SAMBA_SERVER_IP\ris\winxp\i386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1
 
[SetupData]
OsLoadOptions = "/fastdetect"
; Needed for first stage
SetupSourceDevice = "\Device\LanmanRedirector\SAMBA_SERVER_IP\ris\winxp"
 
[UserData]
ComputerName = *

Create or modify PXE boot menu list

vi /tftpboot/pxelinux.cfg/default
LABEL XPkernel winxp/winxp.0

Creating tftp remap file

vi /tftpboot/tftpd.remap
ri ^[az]: # Remove “drive letters”
rg \\ / # Convert backslashes to slashes
rg \# @ # Convert hash marks to @ signs
rg /../ /..no../ # Convert /../ to /..no../
rg A a
rg B b
rg C c
rg D d
rg E e
rg F f
rg G g
rg H h
rg I i
rg J j
rg K k
rg L l
rg M m
rg N n
rg O o
rg P p
rg Q q
rg R r
rg S s
rg T t
rg U u
rg V v
rg W w
rg X x
rg Y y
rg Z z
r ^/(.*) \1
r ^xpldr winxp/xpldr
r ^ntdetect.wxp winxp/ntdetect.wxp
r ^winxp.sif winxp/winxp.sif

Changes in tftp deamon to run tftp remap file

vi /etc/xinetd.d/tftp
server_args = -m /tftpboot/tftpd.remap -s -v -v -v -v /tftpboot

Running binl server so that client machine can take needed network drivers

cp /root/pxefiles/script/binlsrv.py /tftpboot/winxp/
cp /root/pxefiles/script/infparser.py /tftpboot/winxp/
cd /tftpboot/winxp/
/tftpboot/winxp/infparser.py /tftpboot/winxp/i386
nohup /tftpboot/winxp/binlsrv.py &

Note : you can get windows drivers from driverpacks.net

PXE booting Windows XP Installation

21 thoughts on “PXE booting Windows XP Installation

  • Pingback: Twitted by techienotecom

  • August 24, 2010 at 7:00 am
    Permalink

    Intriguing , I wonder what the statistics are on your first point there…

    Reply
  • August 26, 2010 at 9:00 am
    Permalink

    I think that is an interesting point, it made me think a bit. Thanks for sparking my thinking cap. Sometimes I get so much in a rut that I just feel like a record.

    Reply
  • December 17, 2010 at 3:06 am
    Permalink

    doesnt work. always get the message after passing winxp.0 and while xpldr tries to get some…
    very confused….
    using isc dhcp, samba, hpa-tftp4.03, pxelinux…
    canstart everything else (.iso,memtest, other stuff), only f#### windows xp stirs up…
    using inetd instead of xinetd but think setting the args´s all the same in the end….

    Reply
  • December 17, 2010 at 3:07 am
    Permalink

    the message is sending NAK (only absolute filenames allowed)

    Reply
    • December 17, 2010 at 9:04 am
      Permalink

      @bobmarlex are you using unattended version of windows xp cd?

      Reply
      • December 17, 2010 at 11:25 pm
        Permalink

        @Vidyadhar
        i´m not exactly sure what you mean. for testing i used to use an .iso image of my 5 years old original xppro cd that i slipstreamed. then i created necassary unattended scripts beside runonceex and tested successfully in vmware.
        the exact message via /var/log/message is:
        Dec 17 17:55:18 …sending NAK (2, only absolute filenames allowed)
        now googling for hours wht this message means..

        Reply
        • December 18, 2010 at 12:39 am
          Permalink

          @Vidyadhar 2nd note:
          damn..good news-bad news..
          good: faulty dhcpd.conf because of the entry ‘filename >/tftpbootchanged>xpldr fires up>a redmond bootloaderscreen is seen (hurray)
          bad: setup discontinues saying txtsetup.sif is missing, setup can´t continue..
          is this what you meant by askining for unattended version of windows xp cd? any ideas?

          Reply
  • December 18, 2010 at 2:53 am
    Permalink

    @Vidyadhar
    now there´ s an answer to your question. no, i do not have/use an unattended installation xp cd.
    because: servers´ services all work tight now, redmond´s setup stage is reached (hurray, slightly a milestone) had a few few faults in my config files (see above).
    at this point there are ‘only’ many many ms-setup faults ‘to be earned’. something like
    “file d:\xpsp\base\boot\setup\oemdisk.c is missing” (clients bootscreen) …. log says txtsetup.oem is missing. think i mashed up the dependencies…should i build a completely new xp remote setup?

    Reply
  • December 19, 2010 at 2:30 am
    Permalink

    ok here´s another state
    what works fine: dhcp, pxe, tftp, binl, samba
    what does not: redmonds setup welcome screen won´t fire up, stuck into the ‘choose computertype’ screen
    client tells to have the need of loading oem-drivers…
    tftpd log says drvmain.sdb is missing (NAK) then unsupdrv.inf (NAK)
    tried your ‘downlevel-winxp.sif’ even as my ‘heavyload’ sif. same results with slightly different txt messages in clients´ bsoi

    Reply
    • October 2, 2011 at 8:55 pm
      Permalink

      hi, I have successfly setup pxe win xp install using this howto – some things I realized during setup:

      * when I used 2 letter dir name for install dir, tftp remap “/tftp/xp” -> “/tftp/..no..” so rule in remap file should be

      “rg /\.\./ /..no../”
      # dots should be escaped – maybe the CMS striped out :]

      * when I put xp install dir into subdir like /tftp/img/xp/i386 I realized that xp setup look files in wrong location – in “xp/i386” dir, so I remaping location at the end of remap file like this :

      “r ^xp\/i386\/(.*) img/xp/i386/\1”
      # xp/i386/* -> img/xp/i386/*

      * I nLited only SP3 into my win xp install, no drivers…

      * I used the DrivePacks “Mass Storage 11.09”, “LAN 11.09” and “Chipset 11.09” like I copied all “*.sys” and “*.inf” files from archives to i386 folder, than infpars /tftp/img/xp/i386 and restart binlsrv [filenames *sys, *inf have to be lowercase !]

      * almost all errors I have seen were that tftpd could not find files, so when boot fail – look to the tftpd/syslog logfile

      * I did not try install xp using pxe on the physical machine yet, only VM

      IMHO: nice tricky straightforward howto :] thx
      cheers ET

      Reply
      • October 3, 2011 at 12:21 am
        Permalink

        I tried reproduce creating win xp install dir with no luck so here is how I succefully created

        1] copy i386 from cd
        2] nlite SP3 only [ I tried unattended with no luck]
        3] driverpack with archives above
        4] copy all *inf *sys files from driverpack archives to i386
        5] lowercase filenames in i386
        6] infparse i386
        7] binlsrv start

        good luck

        Reply
  • November 14, 2011 at 9:23 pm
    Permalink

    My setup stops at displaying window xp image as if something happening, then follows stop error: PROCESS1_INITIALIZATION_FAILED. When I check the Tftpd32 log screen, I see the last file to be transfered is “mrxsmb.sy_”.

    I am using Windows XP spk3 as my server.

    Any help?

    Reply
    • November 15, 2011 at 10:28 am
      Permalink

      Is this file present in mrxsmb.sy_ ?

      Reply
  • Pingback: ris linux

  • Pingback: How To Install Windows XP througth network (Ubuntu & dhcpd & tftpd-hpa & syslinux & samba) | jerry-yang work's logs

  • May 11, 2012 at 2:41 am
    Permalink

    I think I am sooo close, however when I select XP on the client machine it says TFTP Faild, going back to my linux server running cat /var/log/syslog | grep tftp I see this:

    May 10 17:05:32 pxe in.tftpd[3289]: RRQ from 192.168.1.3 filename pxelinux.0
    May 10 17:05:32 pxe in.tftpd[3289]: tftp: client does not accept options
    May 10 17:05:32 pxe in.tftpd[3290]: RRQ from 192.168.1.3 filename pxelinux.0
    May 10 17:05:32 pxe in.tftpd[3291]: RRQ from 192.168.1.3 filename pxelinux.cfg/44454c4c-4a00-1037-8050-b4c04f474431
    May 10 17:05:32 pxe in.tftpd[3291]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3292]: RRQ from 192.168.1.3 filename pxelinux.cfg/01-00-1c-23-09-d7-3e
    May 10 17:05:32 pxe in.tftpd[3292]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3293]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A80103
    May 10 17:05:32 pxe in.tftpd[3293]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3294]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A8010
    May 10 17:05:32 pxe in.tftpd[3294]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3295]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A801
    May 10 17:05:32 pxe in.tftpd[3295]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3296]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A80
    May 10 17:05:32 pxe in.tftpd[3296]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3297]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A8
    May 10 17:05:32 pxe in.tftpd[3297]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3298]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0A
    May 10 17:05:32 pxe in.tftpd[3298]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3299]: RRQ from 192.168.1.3 filename pxelinux.cfg/C0
    May 10 17:05:32 pxe in.tftpd[3299]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3300]: RRQ from 192.168.1.3 filename pxelinux.cfg/C
    May 10 17:05:32 pxe in.tftpd[3300]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:32 pxe in.tftpd[3301]: RRQ from 192.168.1.3 filename pxelinux.cfg/default
    May 10 17:05:32 pxe in.tftpd[3302]: RRQ from 192.168.1.3 filename menu
    May 10 17:05:32 pxe in.tftpd[3302]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:33 pxe in.tftpd[3303]: RRQ from 192.168.1.3 filename menu.cbt
    May 10 17:05:33 pxe in.tftpd[3303]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:33 pxe in.tftpd[3304]: RRQ from 192.168.1.3 filename menu.0
    May 10 17:05:33 pxe in.tftpd[3304]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:33 pxe in.tftpd[3305]: RRQ from 192.168.1.3 filename menu.com
    May 10 17:05:33 pxe in.tftpd[3305]: sending NAK (1, File not found) to 192.168.1.3
    May 10 17:05:33 pxe in.tftpd[3306]: RRQ from 192.168.1.3 filename menu.c32
    May 10 17:05:33 pxe in.tftpd[3307]: RRQ from 192.168.1.3 filename pxelinux.cfg/default
    May 10 17:05:34 pxe in.tftpd[3308]: RRQ from 192.168.1.3 filename winxp/winxp.0
    May 10 17:05:34 pxe in.tftpd[3309]: RRQ from 192.168.1.3 filename XPLDR
    May 10 17:05:34 pxe in.tftpd[3309]: sending NAK (1, File not found) to 192.168.1.3

    Reply
  • May 22, 2012 at 7:14 am
    Permalink

    This was causing me all sorts of grief. I’d do an install and end up on first reboot with a message along the lines of “missing or corrupt ntfs.sys”

    After doing some digging it appears the section


    cd /root
    wget http://downloads.sourceforge.net/project/bootfloppy/pxefiles.tar.gz?use_mirror=space
    tar zxvf pxefiles.tar.gz
    cd pxefiles/drivers
    cp * /tftpboot/winxp/i386/
    cd /tftpboot/winxp/i386/
    cabextract driver.cab

    extracts a different (not sure yet if older or newer) ntoskrnl.exe into your i386 directory which overrides the one that came on the CD from the previous copy (the correct one will be listed as ntoskrnl.ex_ )

    You need to delete this file and it all seems to work again.

    Thanks a lot for this guide though.

    (Hopefully this will save someone a few days worth of hair pulling ! )

    Reply
  • October 5, 2015 at 4:01 pm
    Permalink

    Trying to load: pxelinux.cfg/default ok
    No DEFAULT or UI configuration directive found!

    and i have “LABEL XPkernel winxp/winxp.0”

    Reply
    • October 5, 2015 at 9:47 pm
      Permalink

      Well I corrected the error but now after trying to boot
      Filename: pxelinux.0
      tftp://192.168.3.107/pxelinux.0……… Connection timed out (http://ipxe.org/4c126035)
      Fatal: Could not read from the boot medium! System halted.
      xinetd in running it has the server args provided in the article. Maybe I`m the only one with this problem. Anyway thank you, good article!

      Reply
      • October 5, 2015 at 10:15 pm
        Permalink

        Ok! Not it works, the directive in /tftpboot/pxelinux.cfg/default was not ok. it worked without the kernel parameter. Thank you very much!

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Recommend on Google