Jump to content

PXELinux, PE2.0 and MS TFTPD


JSmith

Recommended Posts

Hello guys, and thanks for reading this in advance.

I decided rather than semi-hijacking other peoples threads to just make a new one.

So here is my situation. I've seen and tried to follow some other peoples work here, and it has helped me get *almost* everything I need I believe, but I am missing something yet to get this to PXE boot PE2.

For starters, here is my ftp root directory, files and files in subdirectorys. I've tried the shotgun effect in this case so almost all files are in the root and the boot directories.

tftpdroot\abortpxe.com
tftpdroot\BCD
tftpdroot\boot
tftpdroot\boot.sdi
tftpdroot\BOOTFIX.BIN
tftpdroot\bootmgr.exe
tftpdroot\display.msg
tftpdroot\en-US
tftpdroot\hdlscom1.com
tftpdroot\hdlscom1.n12
tftpdroot\hdlscom2.com
tftpdroot\hdlscom2.n12
tftpdroot\P.imz
tftpdroot\pxeboot.0
tftpdroot\pxeboot.com
tftpdroot\pxeboot.n12
tftpdroot\pxelinux.0
tftpdroot\pxelinux.cfg
tftpdroot\SETUPLDR.BIN
tftpdroot\startrom.0
tftpdroot\startrom.com
tftpdroot\startrom.n12
tftpdroot\WdsConfig.inf
tftpdroot\wdsnbp.0
tftpdroot\wdsnbp.com
tftpdroot\winpe.wim
tftpdroot\winpe_x86.iso
tftpdroot\boot\abortpxe.com
tftpdroot\boot\BCD
tftpdroot\boot\bootmgr.0
tftpdroot\boot\bootmgr.exe
tftpdroot\boot\en-US
tftpdroot\boot\hdlscom1.com
tftpdroot\boot\hdlscom1.n12
tftpdroot\boot\hdlscom2.com
tftpdroot\boot\hdlscom2.n12
tftpdroot\boot\pxeboot.0
tftpdroot\boot\pxeboot.com
tftpdroot\boot\pxeboot.n12
tftpdroot\boot\WdsConfig.inf
tftpdroot\boot\wdsnbp.0
tftpdroot\boot\wdsnbp.com
tftpdroot\boot\WinPE.wim
tftpdroot\boot\en-US\bootmgr.exe.mui
tftpdroot\en-US\bootmgr.exe.mui
tftpdroot\pxelinux.cfg\default
tftpdroot\pxelinux.cfg\menu.c32
tftpdroot\pxelinux.cfg\olddefault

Next is the lovely "pxelinux.cfg\default" file. Some contents ommited that are irrelevant. (I have a load of IMZ files that also boot for other reasons, which are also omitted from the directory structure above)

default 1
timeout 50
implicit 0
prompt 1
display display.msg

label PE
KERNEL \boot\wdsnbp.0

LABEL LOCAL
localboot 0

As a side note, this may be the root of my problems, maybe not. I can't seem to get two of the commands from the "Configure boot configuration" phase to run correctly, maybe you can provide some input on that.

The full script is as follows, the two lines that are commented out are the problem lines. The rest run sucessfully with no error. The first commented line will run sucessfully without the /inherit switch and option. The second line doesnt run at all, for any reason I can tell. I have tried swapping the "-" to a "/" as suggested, but it didn't work for me. I am doing this from a Vista Ultimate machine, so I really shouldnt be missing any functionality... I'm stumped.

Bcdedit -createstore c:\BCD
Bcdedit -store c:\BCD -create {ramdiskoptions} /d “Ramdiskoptions”
Bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdidevice boot
Bcdedit -store c:\BCD -set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
Bcdedit -store c:\BCD -create {dbgsettings} /d “DebuggerSettings”
Bcdedit -store c:\BCD -set {dbgsettings} debugtype serial
Bcdedit -store c:\BCD -set {dbgsettings} baudrate 115200
Bcdedit -store c:\BCD -set {dbgsettings} debugport 1
:: NEW GUID CREATED HERE
for /f "tokens=1-3" %%a in ('Bcdedit -store c:\BCD -create /d “WinPEBootImage” /application osloader') do SET GUID1=%%c
::Bcdedit -store c:\BCD -create {bootmgr} /d “VISTABootManager” /inherit {dbgsettings}
Bcdedit -store c:\BCD -set {bootmgr} timeout 30
::Bcdedit -store c:\BCD -set displayorder %GUID1%;
Bcdedit -store c:\BCD -set %GUID1% systemroot \Windows
Bcdedit -store c:\BCD -set %GUID1% detecthal Yes
Bcdedit -store c:\BCD -set %GUID1% winpe Yes
Bcdedit -store c:\BCD -set %GUID1% osdevice ramdisk=[boot]\Boot\WinPE.wim,{ramdiskoptions}
Bcdedit -store c:\BCD -set %GUID1% device ramdisk=[boot]\Boot\WinPE.wim,{ramdiskoptions}

I appreciate you guys taking the time to read all this, this forum has provided me a lot of help and you guys are great!

Link to comment
Share on other sites


  • 3 weeks later...

Bump to see if anyone has any ideas. I've been working with Microsoft on making a "flat file" method work, but thus far haven't been able to make either method work.

In PXELINUX what would you use as the kernel for booting this? This is where I am stuck and I am not sure Microsoft understands the workings of PXELINUX enough to answer.

Link to comment
Share on other sites

I'm getting the 'txtsetup.sif is corrupted or missing' error. after it pulls the whole file down. I am currently using an ISO instead of the WIM as well, but can go either way.

If my understanding is correct, txtsetup.sif isn't even used in PE2.

Link to comment
Share on other sites

... In PXELINUX what would you use as the kernel for booting this? This is where I am stuck and I am not sure Microsoft understands the workings of PXELINUX enough to answer.

try using pxeboot.n12 as kernel in the PXElinux config.

Link to comment
Share on other sites

We are using the WIM file for our pxe booting. we tried the ISO at first, because that is what we were using with WinPE v1.6, but didn't have good luck using it.

Here are the files we are using in our "Boot" folder:

abortpxe.com

bootmgr.exe

hdlscom1.com

hdlscom1.n12

hdlscom2.com

hdlscom2.n12

pxeboot.com

WdsConfig.inf

wdsnbp.com

boot.sdi

pxeboot.0

BCD

And we are booting the pxeboot.0 file.

Link to comment
Share on other sites

I use PXElinux to boot PE 2.0 from a OpenSuSE box.

So far, the only problems I had were related to missing files. I would recommend you get a copy of WireShark if you don't already have it and watch the boot process (since the MS TFTP server lacks a decent logging, as far as I have seen and heard).

If you think it could help you, I can post the log of my TFTPd, but since I am back to work on monday, it will take some time.

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

I'm not 100% sure i'd know what to do with the logs, but perhaps my network guy would. I am going to try a newer version of pxelinux, the one we are using is dated 09/2005 and there are newer versions.

Link to comment
Share on other sites

This is the (shortened) log of my tftpd, while I boot to PE 2.0. As you can see from the NAKs there are some files I don't have in the tftp share, but that doesn't hold the boot of Windows PE in any way (at least it doesn't look like that for me). The interesting information for you are the RRQs with the filenames that are read from the client. You don't need to care about the filenames that follow after the "remapped", that's only because I prefer to have my own directory structure in the tftp share.


07:06:34 in.tftpd[14917]: RRQ from 192.168.X.X filename pxelinux.0
07:06:34 in.tftpd[14918]: RRQ from 192.168.X.X filename pxelinux.0
07:06:34 in.tftpd[14928]: RRQ from 192.168.X.X filename pxelinux.cfg/default
07:06:34 in.tftpd[14929]: RRQ from 192.168.X.X filename menu.c32
07:06:34 in.tftpd[14930]: RRQ from 192.168.X.X filename pxelinux.cfg/default
07:06:38 in.tftpd[14931]: RRQ from 192.168.X.X filename /boot/pe20/pxeboot.0
07:06:38 in.tftpd[14932]: RRQ from 192.168.X.X filename bootmgr.exe remapped to /boot/pe20/bootmgr.exe
07:06:39 in.tftpd[14933]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf
07:06:39 in.tftpd[14934]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf
07:06:39 in.tftpd[14935]: RRQ from 192.168.X.X filename \boot.ini remapped to /boot/pe20/boot.ini
07:06:39 in.tftpd[14935]: sending NAK (1, File not found) to 192.168.X.X
07:06:54 in.tftpd[14936]: RRQ from 192.168.X.X filename \Boot\BCD remapped to /boot/pe20/BCD
07:06:54 in.tftpd[14937]: RRQ from 192.168.X.X filename \Boot\BCD remapped to /boot/pe20/BCD
07:06:54 in.tftpd[14938]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf
07:06:54 in.tftpd[14939]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf
07:06:54 in.tftpd[14940]: RRQ from 192.168.X.X filename \hiberfil.sys remapped to /hiberfil.sys
07:06:54 in.tftpd[14940]: sending NAK (1, File not found) to 192.168.X.X
07:06:54 in.tftpd[14941]: RRQ from 192.168.X.X filename \Boot\WinPE.wim remapped to /boot/pe20/WinPE.wim
07:06:54 in.tftpd[14942]: RRQ from 192.168.X.X filename \boot\boot.sdi remapped to /boot/pe20/boot.sdi
07:06:54 in.tftpd[14943]: RRQ from 192.168.X.X filename \boot\boot.sdi remapped to /boot/pe20/boot.sdi
07:06:55 in.tftpd[14944]: RRQ from 192.168.X.X filename \Boot\WinPE.wim remapped to /boot/pe20/WinPE.wim
07:07:28 in.tftpd[14948]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf
07:07:28 in.tftpd[14949]: RRQ from 192.168.X.X filename \Boot\Fonts\wgl4_boot.ttf remapped to /boot/pe20/Fonts/wgl4_boot.ttf

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

Awesome thanks. With that tip and a little help from a network trace I am now booting!

Thanks a ton for your help!

On a side note, is there a way to bypass the need to press F12 to PXE boot? It seems to freeze up all the time if you don't press F12 fast enough, and to me that extra key press is an annoyance anyway since I already have the pxelinux menu.

Thanks again!

John

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...