How I Pxe-booted Winpe And A Request For Help Getting WinPE to PXE-boot Under Linux
Posted 23 February 2005 - 10:09 AM
It turns out that I was having difficulty in two areas:
1. Building the right version of WinPE and its support files and
2. Choosing the right tftp server and configuring it properly.
So here's what I found.
I ended up building WinPE from Windows Server 2003 Service Pack 1 RC2 in the usual manner. RC2 is available for general download from Microsoft. I slipstreamed it into my Win2K3 install tree. The WinPE build resulted in a set of what I call boot support files (NTLDR, ntdetect.com, startrom.com) that worked properly with my tftp server.
I expanded the startrom.com from the file startrom.n1_ rather than from startrom.co_. This keeps the boot process from requesting that you hit the F12 key to boot.
By the way, NTLDR and WINPE.ISO had to be capitalized to conform to what the boot support files (startrom.com and NTLDR, I think) are requesting. I'm not sure this is true of all tftp servers (I'm a Linux novice), but it's what my tftp server expected.
Speaking of a tftp server, I used tftp-hpa because atftpd (the tftp server I was using) choked when the WinPE file got above 90 MB. This resulted in the client machine showing a failure message that didn't expose the reason for the failure. Be sure to set the verbosity of your tftp server as high as possible and monitor the server's error log as the boot progresses. You can find out a lot about why a boot is failing that way. Also be sure the winnt.sif, startrom.com, NTLDR, <IMAGENAME>.ISO, and ntdetect.com files are in the right place. That is, in the target directory specified by your tftp server (often this is a settable option).
Once I had the boot support files in the right place, I still had problems when WinPE itself tried to load. I had earlier built a WinPE iso that successfully PXE-booted using tftpd32. I believe I built this image using the RC1 version of Windows Server 2003 SP1. That image in turn initially had a problem with Diskpart.exe. It wouldn't properly create partitions. So I built the WinPE file set using the slipstreamed RC1 install tree using mkimg.cmd without creating an iso. Next, I substituted a version of Diskpart.exe that came with my original WinPE distribution from a Windows OPK disk. Then I used oscdimg.exe to create my iso file. I used the boot support files that were created using SP1 RC2 to load this image and everything worked.
So now I have an image of dubious ancestry, but at least it boots and does what I need it to do. There may be a better way of getting everything together, but since I don't have the BETA WinPE stuff from Microsoft, I'm feeling my way along. Any advice about streamlining the build would be appreciated.
Finally, a request. I really want to get my iso image under 90 MB so I can use the atftpd server instead of tftpd-hpa. All I want to be able to do is run Diskpart.exe, map to a network share and run the Windows Installer (winnt32.exe) for Win2K and Win2K3. What things can I strip out???
Posted 25 February 2005 - 11:27 AM
The one missing part is the ability to specify the block size for the Dload.
With a forced 8k block size.. a 150 meg image loads in 25 seconds! The default (fixed) auto setting takes over 4 minutes to Dload.
I was asked by the PE product manager to submit a bug repoort about this. MS is going to try and squeek this into the SP1 release. But if it does not make it... it will be in the longhorn version.
I'm still docking out my Linux PXE server config.
Posted 04 March 2005 - 07:47 AM
the.neon, on Mar 3 2005, 09:00 AM, said:
how does you change the blocksize of the iso image ???
Currently you can't. The Client loader is hard set to Auto negotiate.
I submitted this as a feature request / Bug to Microsoft.
Posted 16 March 2005 - 02:22 PM
I try to boot a BartPE iso from PXE
I do an bartPE iso (with WinXP SP2 source)
I put the PEBUILDER.ISO, winnt.sif, startrom.com, NTDLR, and ntdetect.com in my /tftpboot directory.
(I also modified dhcpd.conf to point to NTDLR: filename "/tftpboot/startrom.com"; )
It doesn't work. no boot.
Can you help me ?
(The TFTP work, I boot successfuly a GEEXBOX with PXE)
Posted 20 March 2005 - 07:26 AM
atftpd[22533.-1209584992]: Advanced Trivial FTP server started (0.7) atftpd[22533.-1209586768]: Serving /tftpboot/startrom.com to 10.0.0.227:2070 atftpd[22533.-1218028624]: Serving /tftpboot/startrom.com to 10.0.0.227:2071 atftpd[22533.-1218028624]: Serving NTLDR to 10.0.0.227:2072 atftpd[22533.-1218028624]: Serving BOOTFONT.BIN to 10.0.0.227:45750 atftpd[22533.-1218028624]: Serving ntdetect.com to 10.0.0.227:45751 atftpd[22533.-1218028624]: Serving winnt.sif to 10.0.0.227:45752 atftpd[22533.-1209586768]: Serving PEBUILDER.ISO to 10.0.0.227:45753 atftpd[22533.-1209586768]: Requested file to big, increase BLKSIZE
I mail the author, I think this is a bug (file over 90 MB)
I try with tftpd-hpa, it works perfectly with a Bart's PE CD from 2003 server SP1-RC2. (the Bart's PE CD from WinXP-SP2 make a BSOD, I will try later on another PC)
Now, I will test with with topic: http://www.msfn.org/...showtopic=10181
to run the install automatically
Posted 12 April 2005 - 01:08 AM