Jump to content

Need help troubleshooting Booting WinPE 3.0 with PXELINUX


clivebuckwheat

Recommended Posts

Hi I have been trying to accomplish this feat for about a week now, and I always seem to get a boot up error. See screen shot at then end of the post any guidance would be appreciated.

Here is how I call WinPe from my default file

label WinPE
menu label ^WinPE
menu default
kernel Boot/startrom.0
append Bootmgr.exe

here is the content of my /tftpboot

pxelinux.0

boot.img.gz

mini.iso

pxelinux.cfg

vesamenu.c32

bootmgr.exe

netboot.tar.gz

tftpd.remap

/tftpboot/Boot

abortpxe.com

boot.sdi

hdlscom2.com

startrom.0

wgl4_boot.ttf

BCD

hdlscom1.com

hdlscom2.n12

WdsConfig.inf

WinPE.wim

BCD.LOG

hdlscom1.n12

pxeboot.com

wdsnbp.com

/tftpboot/tftpd.remap file

rg \\ /

/etc/default/tftpd-hpa

RUN_DAEMON="yes"

OPTIONS="-l -s /tftpboot -m /tftpboot/tftpd.remap -vvv"

/etc/inetd.conf

tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /tftpboot

/etc/dhcp3/dhcp.conf

default-lease-time 86400;

max-lease-time 604800;

authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {

range 192.168.1.2 192.168.1.255;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.1.255;

option routers 192.168.1.1;

filename "pxelinux.0";

next-server 192.168.1.195;

Contents of /var/log/syslog

/var/log/syslog

Mar 27 20:24:35 pxe-server in.tftpd[15040]: RRQ from 192.168.1.5 filename howtoforge_pxe.png
Mar 27 20:24:39 pxe-server in.tftpd[15041]: remap: input: Boot/startrom.0
Mar 27 20:24:39 pxe-server in.tftpd[15041]: remap: done
Mar 27 20:24:39 pxe-server in.tftpd[15041]: RRQ from 192.168.1.5 filename Boot/startrom.0
Mar 27 20:24:39 pxe-server in.tftpd[15042]: remap: input: bootmgr.exe
Mar 27 20:24:39 pxe-server in.tftpd[15042]: remap: done
Mar 27 20:24:39 pxe-server in.tftpd[15042]: RRQ from 192.168.1.5 filename bootmgr.exe
Mar 27 20:24:40 pxe-server in.tftpd[15043]: remap: input: \Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15043]: remap: rule 0: rewrite: /Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15043]: remap: rule 0: rewrite: /Boot/Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15043]: remap: rule 0: rewrite: /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15043]: remap: done
Mar 27 20:24:40 pxe-server in.tftpd[15043]: RRQ from 192.168.1.5 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15044]: remap: input: \Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15044]: remap: rule 0: rewrite: /Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15044]: remap: rule 0: rewrite: /Boot/Fonts\wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15044]: remap: rule 0: rewrite: /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:40 pxe-server in.tftpd[15044]: remap: done
Mar 27 20:24:40 pxe-server in.tftpd[15044]: RRQ from 192.168.1.5 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:41 pxe-server in.tftpd[15045]: remap: input: \boot.ini
Mar 27 20:24:41 pxe-server in.tftpd[15045]: remap: rule 0: rewrite: /boot.ini
Mar 27 20:24:41 pxe-server in.tftpd[15045]: remap: done
Mar 27 20:24:41 pxe-server in.tftpd[15045]: RRQ from 192.168.1.5 filename \boot.ini remapped to /boot.ini
Mar 27 20:24:41 pxe-server in.tftpd[15045]: sending NAK (1, File not found) to 192.168.1.5
Mar 27 20:24:56 pxe-server in.tftpd[15046]: remap: input: \Boot\BCD
Mar 27 20:24:56 pxe-server in.tftpd[15046]: remap: rule 0: rewrite: /Boot\BCD
Mar 27 20:24:56 pxe-server in.tftpd[15046]: remap: rule 0: rewrite: /Boot/BCD
Mar 27 20:24:56 pxe-server in.tftpd[15046]: remap: done
Mar 27 20:24:56 pxe-server in.tftpd[15046]: RRQ from 192.168.1.5 filename \Boot\BCD remapped to /Boot/BCD
Mar 27 20:24:56 pxe-server in.tftpd[15047]: remap: input: \Boot\BCD
Mar 27 20:24:56 pxe-server in.tftpd[15047]: remap: rule 0: rewrite: /Boot\BCD
Mar 27 20:24:56 pxe-server in.tftpd[15047]: remap: rule 0: rewrite: /Boot/BCD
Mar 27 20:24:56 pxe-server in.tftpd[15047]: remap: done
Mar 27 20:24:56 pxe-server in.tftpd[15047]: RRQ from 192.168.1.5 filename \Boot\BCD remapped to /Boot/BCD
Mar 27 20:24:57 pxe-server in.tftpd[15048]: remap: input: \Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15048]: remap: rule 0: rewrite: /Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15048]: remap: rule 0: rewrite: /Boot/Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15048]: remap: rule 0: rewrite: /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15048]: remap: done
Mar 27 20:24:57 pxe-server in.tftpd[15048]: RRQ from 192.168.1.5 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15048]: tftp: client does not accept options
Mar 27 20:24:57 pxe-server in.tftpd[15049]: remap: input: \Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15049]: remap: rule 0: rewrite: /Boot\Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15049]: remap: rule 0: rewrite: /Boot/Fonts\wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15049]: remap: rule 0: rewrite: /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15049]: remap: done
Mar 27 20:24:57 pxe-server in.tftpd[15049]: RRQ from 192.168.1.5 filename \Boot\Fonts\wgl4_boot.ttf remapped to /Boot/Fonts/wgl4_boot.ttf
Mar 27 20:24:57 pxe-server in.tftpd[15050]: remap: input: \hiberfil.sys
Mar 27 20:24:57 pxe-server in.tftpd[15050]: remap: rule 0: rewrite: /hiberfil.sys
Mar 27 20:24:57 pxe-server in.tftpd[15050]: remap: done
Mar 27 20:24:57 pxe-server in.tftpd[15050]: RRQ from 192.168.1.5 filename \hiberfil.sys remapped to /hiberfil.sys
Mar 27 20:24:57 pxe-server in.tftpd[15050]: sending NAK (1, File not found) to 192.168.1.5:'

Screenshot.png

Link to comment
Share on other sites


I think the bootloader message together with your TFTP log is quite clear, isnt it?

Something in the BCD file is wrong, as it can apparently load it and tell you that. And you never see the .wim getting requested from TFTP.

so check your BCD config. "bcdedit /store BCDfile /enum"

update:

this is what a succesful boot of WinPE 2.0 looks like from the TFTP server side:

Edited by bj-kaiser
Link to comment
Share on other sites

  • 1 month later...

I totally feel your pain. I've spent many many hours trying to do exactly what you're doing. The good news is that I just finished up putting my final touches on this project last week.

So here's the parts of the puzzle I think you might be missing. As a point of clarification, there are two lines in the following script that will probably fail. I modified the original 'startnet.cmd' file to add a call to 'mac.bat', and then added the 'mac.bat' script to my WinPE.wim file. I use these two script to mount my SMB share, cd to the installer directory, and run setup.exe with an unattended file. If you'd like a copy of those scripts, I can add them, but you don't need them to start WinPE.

Also, don't forget to change the GUID to the return value of the BCD creation command. I've yet to go back to the script, and rewrite it to capture the GUID. I plan to do it at some point, just haven't gone back to it yet.

# Run this from the Windows Machine that has WAIK installed.

#Mount the TFTP root of the Linux Server via SMB
net use Y: \\pxe\REMINST

# Create and copy over the WinPE image (renamed to boot.wim)
copype.cmd amd64 c:\winpe_amd64
imagex /mountrw C:\winpe_amd64\winpe.wim 1 C:\winpe_amd64\mount
copy /Y c:\winpe_amd64\mount\Windows\Boot\PXE\*.* Y:\Boot
copy /Y Y:\Boot\pxeboot.n12 Y:\Boot\startrom.0
copy /Y Y:\images\WINDOWS_ISOS\startnet.cmd c:\winpe_amd64\mount\Windows\System32\startnet.cmd
copy /Y Y:\images\WINDOWS_ISOS\mac.bat c:\winpe_amd64\mount\Windows\System32\mac.bat
Imagex /unmount /commit c:\winpe_amd64\mount
copy /Y c:\winpe_amd64\winpe.wim Y:\Boot\boot.wim
copy /Y "c:\Program Files\Windows AIK\Tools\PETools\amd64\boot\boot.sdi" Y:\Boot

#Create the BCD
Bcdedit -createstore c:\winpe_amd64\BCD
Bcdedit -store c:\winpe_amd64\BCD -create {ramdiskoptions} /d "Ramdisk options"
Bcdedit -store c:\winpe_amd64\BCD -set {ramdiskoptions} ramdisksdidevice boot
Bcdedit -store c:\winpe_amd64\BCD -set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi
Bcdedit -store c:\winpe_amd64\BCD -create /d "Fibernet WinPE Boot Image for Unattended Installs" /application osloader

#The last command returns a unique GUID string that needs to be used in later commands:
# The entry {ea0be71a-4bf4-11df-aecf-c21c162604c3} was successfully created.
Bcdedit -store c:\winpe_amd64\BCD -set {6a81174a-4d52-11df-b87f-e53851c295c4} systemroot \Windows
Bcdedit -store c:\winpe_amd64\BCD -set {6a81174a-4d52-11df-b87f-e53851c295c4} detecthal Yes
Bcdedit -store c:\winpe_amd64\BCD -set {6a81174a-4d52-11df-b87f-e53851c295c4} winpe Yes
Bcdedit -store c:\winpe_amd64\BCD -set {6a81174a-4d52-11df-b87f-e53851c295c4} osdevice ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store c:\winpe_amd64\BCD -set {6a81174a-4d52-11df-b87f-e53851c295c4} device ramdisk=[boot]\Boot\boot.wim,{ramdiskoptions}
Bcdedit -store c:\winpe_amd64\BCD -create {bootmgr} /d "Windows BootManager"
Bcdedit -store c:\winpe_amd64\BCD -set {bootmgr} timeout 30
Bcdedit -store c:\winpe_amd64\BCD -displayorder {6a81174a-4d52-11df-b87f-e53851c295c4}
copy c:\winpe_amd64\BCD Y:\Boot

You want to do the amd64 one because it will do both the amd64 and x86 installs. The opposite is not true.

Then my tftp remap file, and xinetd.d/tftp file.

# cat /etc/tftpd.rules 
r ^\\cdrom\\i386\\pcntpci5.sys pcntpci5.sys
r ^\\\\i386 i386
rg \\ /
r KDCOM.DL_ kdcom.dl_
r KDCOM.DLL kdcom.dll
r BOOTVID.dl_ bootvid.dl_
r BOOTVID.dll bootvid.dll
r SETUPREG.HIV setupreg.hiv
r SPDDLANG.SY_ spddlang.sy_
r SPDDLANG.SYS spddlang.sys
r WMILIB.SY_ wmilib.sy_
r WMILIB.SYS wmilib.sys
r 1394BUS.SY_ 1394bus.sy_
r 1394BUS.SYS 1394bus.sys
r PCIIDEX.SY_ pciidex.sy_
r PCIIDEX.SYS pciidex.sys
r USBPORT.SY_ usbport.sy_
r USBPORT.SYS usbport.sys
r USBD.SY_ usbd.sy_
r USBD.SYS usbd.sys
r HIDCLASS.SY_ hidclass.sy_
r HIDCLASS.SYS hidclass.sys
r HIDPARSE.SY_ hidparse.sy_
r HIDPARSE.SYS hidparse.sys
r SCSIPORT.SY_ scsiport.sy_
r SCSIPORT.SYS scsiport.sys
r CLASSPNP.SY_ classpnp.sy_
r CLASSPNP.SYS classpnp.sys
r TDI.SY_ tdi.sy_
r TDI.SYS tdi.sys
r OPRGHDLR.SY_ oprghdlr.sy_
r OPRGHDLR.SYS oprghdlr.sys
r VIDEOPRT.SY_ videoprt.sy_
r VIDEOPRT.SYS videoprt.sys
r HALAACPI.DL_ halaacpi.dl_
r HALAACPI.DLL halaacpi.dll
r iaStor iastor
r Fasttx2k fasttx2k
r S150sx8 s150sx8
r QL2300 ql2300
r Si3112 si3112
r SiSRaid sisraid
r RTL8139.SY_ rtl8139.sy_
r RTL8139.SYS rtl8139.sys
r 3waredrv.sys 3wareDrv.sys
r 3waredrv.sy_ 3wareDrv.sy_
r bootmgr.exe /Boot/bootmgr.exe
r /boot/ /Boot/


# cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -vv -c -s /tftpboot -m /etc/tftpd.rules
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

That should do it for you. I can pretty much guarantee that I can help you resolve this issue. Go back to the Ubuntu forums and other places you've posted the same issue, and close the threads with a link back to this one.

Link to comment
Share on other sites

Hi clivebuckwheat,

I successfully boot up WinPE 3 AMD64 from a Linux TFTPD server.

Contents of /etc/tftpd.map :

# Convert backslashes to slashes
rg \\ /

Tree of my tftpboot directory:

.
|-- Boot -> boot
|-- boot
| |-- BCD
| |-- WdsConfig.inf
| |-- abortpxe.com
| |-- boot.sdi
| |-- bootmgr.exe
| |-- en-US
| | |-- bootmgr.exe.mui
| | `-- wdsmgfw.efi.mui
| |-- fr-FR
| | |-- bootmgr.exe.mui
| | `-- wdsmgfw.efi.mui
| |-- hdlscom1.com
| |-- hdlscom1.n12
| |-- hdlscom2.com
| |-- hdlscom2.n12
| |-- pxeboot.0 -> pxeboot.n12
| |-- pxeboot.com
| |-- pxeboot.n12
| |-- wdsmgfw.efi
| `-- wdsnbp.com
|-- bootmgr.exe -> boot/bootmgr.exe
|-- pxelinux.0
|-- pxelinux.cfg
| `-- default
`-- sources
`-- boot.wim

My pxelinux.cfg/default :

KERNEL boot/pxeboot.0

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...