PXE Boot Bart PE

As I have been using PXE now for the last days, I wanted to build myself up some nice PXE Images to load from the Network. And the one thing I wanted for sure, was an Bart PE PXE Boot. So I searched the Net, found two really good guides ( Guide 1, Guide 2 ) and I am going to rewrite these Guides now here to set you up with an 100% working tutorial on "How to PXE Boot Bart PE".

What you need:
- tftpd32
- BartPE / PE Builder
- Windows Server 2003 CD with SP1 (IMPORTANT! WITHOUT SP1 IT WON'T WORK!)
- Syslinux (optional)

We do start with the file preparations:

- Creating the BartPE CD
Copy your Windows Server 2003 SP1 Cd onto your PC (lets say C:\win2003),
install PE Builder and start it. Enter C:\win2003 as source,
tell him to create an Iso Image called BartPE.iso and hit start.
Congrats, you just created yourself an BartPE Boot CD with an Live Windows XP!

- Preparing Boot Files
You now need to grap the needed Files like Bootloader and Stuff.
So create an new folder and go get these Files from C:\win2003\i386:
NTDETECT.COM, SETUPLDR.EX_, STARTROM.CO_, STARTROM.N1_, RAMDISK.SY_ und RAMDISK.IN_
After you copied them, you need to extract them.
Open up an cmd Shell, cd to the folder with the copied Files and extract them all with the usage of
"Expand -r Filename" (or Expand -r * should work as well)
You now need to rename some files.
- setupldr.exe should be renamed to NTLDR
- startrom.n12 should be renamed to startrom.0
Next thing is you need to create a textfile with the name winnt.sif with the following content:

[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\System32\"
OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=BartPE.iso"

And thats it with file preparation.
You can delete the files SETUPLDR.EX_, STARTROM.CO_, STARTROM.N1_, RAMDISK.SY_ und RAMDISK.IN_.
All the others are going into the tftboot Folder of the next step.

- Setup up the tftpd32
Easy as hell. Download, unzip.
For example C:\tftpd32
Create the folder tftpboot within that.
And now to the config. There are actually two working configurations:
One with the usage of the pxelinux.0, and one without it.
Which flavor to use is your choice.
Difference: With pxelinux.0, you can build up an boot menu, without it you just only boot BartPE.

But first basics tftp config:
- start tftpd32.exe in C:\tftpd32
- Server interfaces chose your NIC
- Press Settings

Settings:
Base Directory: C:\tftpd32\tftpboot

Global Settings:
TFTP Server [X]
TFTP Client [ ]
SNTP Server [ ]
Syslog Server [ ]
DHCP Server [X]
Syslog Server: [ ] Save syslog message

TFTPD Security: None

TFTPD configuration:
Timeout (seconds) 3
Max Retransmit 6
Tftp port 69
Local ports pool (nothing in here)

Advanced TFTPD Options:
[X] Option negotiation
[ ] PXE Compatibility
[X] Show Progress bar
[X] Translate Unix file names
[ ] Use TFTPD32 only on this interface
[ ] Use anticipation window of 0 Bytes
[X] Allow ´\´ As virtual root
[ ] Hide Window at startup
[ ] Create “dir.txt” files
[ ] Create md5 files
[ ] Beep for long transfer

Press Ok.

Go to the DHCP Server tab and enter following Details depending on your Network configuration:

IP Pool starting adress: Should be +1 of your NIC IP if you got no other PC in your network
Size of Pool: Choose yourself how many clients you want to get in there. I picked 20, get no problems with leases...
Boot File: Depends on wheter you install with or without pxelinux.0. If with, you enter there pxelinux.0, if without the right thing is startrom.0
Rest: Set it appopriate to your network - and Press the big long "SAVE" Button!

Copy the files from - Creating the BartPE CD and - Preparing Boot Files Step into the tftpboot Folder.
You should have there by now:

NTLDR, startrom.0, startrom.com, ntdetect.com, winnt.sif, ramdisk.sys, ramdisk.inf, BartPE.iso

Now lets start with the real thing, only do ONE of these both things:

- without pxelinux.0
Really Easy: Just be sure that you set DHCP Boot file to startrom.0. And thats it!

- with pxelinux.0
A little bit more challenging, but still easy:
Extract the Syslinux-3.11.zip
Get the file menu.c32 from com32/modules, copy to the tftpboot
Get the file memdisk from root Folder, copy to the tftpboot
Get the file pxelinux.0, copy to the tftpboot
Create an folder in the tftpboot with the name pxelinux.cfg
Create an file in the folder pxelinux.cfg with the name default (no File ending and such) with following content:

DEFAULT menu.c32
TIMEOUT 300
ALLOWOPTIONS 0
PROMPT 0
MENU TITLE PXE Boot System
label pebuilder
MENU LABEL ^1: BartPE starten
KERNEL startrom.0
label BootNormal
MENU LABEL ^Boot Normal
LOCALBOOT 0

Be sure that you set DHCP Boot file to pxelinux.0

And thats it.

Note that you can integrate many programs into BartPE! Check out their website.
And do also note: It takes RAM on your client PC!
Normally you should be Ok if your RAM is not smaller than the BartPE.iso + 64 MB.
So don't over do it 😉

Have fun, and thanks for the both guidelines, without them I would have never figured that all out!

Notes:
- You should be able to build BartPE also with an normal Windows XP CD (if it should be higher than SP1), but you still need the Bootfiles to come from Win XP Server SP1 Package (you can download that for free from Microsoft) (Never tested that way!)
- One did set "Anticipation window of 50000 bytes" in the Advanced Tftpd Settings and said that I would speed up tftp transfer. Well, for me, it did just kill the whole process. So I DO NOT recommend that - but maybe its only a flaw in the current tftpd version, so I keep that still in here as note.
- If you use Windows Server as DHCP, these settings has to be set for your scoop: -003 Router (gateway IP), -066 Boot Server Host name (tftp server ip) -067 Bootfile Name (pxelinux.0 or startrom.0)
- Keep an eye out for filenames upper and lowecases if you use Linux / Unix as server! (everything writen lowercase execept NTLDR and BARTPE.ISO)

12 thoughts on “PXE Boot Bart PE

  1. Nid some advice. while trying To Network boot it says line 4 of winnt.sif is invalid 🙁

  2. Well the only thing I can think about is that you got the wrong version of the Windows Source CD, maybe?
    Are you certain that you made the Boot CD from an Windows Server 2003 SP1 CD?
    I ask, because they are quite hard to get a hand onto.

    Regards,

    Nico

  3. sorry sir Nico for the late respond..yup that also what im thinking could be the wrong Boot 2003 CD. i downloaded it via torrent :(. ..but its 2003 sp1. hmm
    sir any Link to that 2003 sp1...? also planning to netboot HIrens and ubcd but couldnt find the required version...nid hel help. Thanks

    Francis

  4. Sorry Francis,
    you should be able to download this CD with an valid TechNet Microsoft Account or as part of the Dreamspark programm or maybe you can buy it in stores. Other ways like torrents are illegal and I cannot support that way. Sorry!

  5. ohh its okay sir np. i have the home XP version genuine sir...i can create bartpe w/d XP Valid..but the netboot files? can i obatin it on the server 2003?

  6. Ty sir.. i mean sir booting Avast Anti Virus Via Network..i read that it can boot thru lan. i have the premimum liscense for that...only on the server side im missing. in softwares i have some.

  7. ah its okay Sir Nico, by the way Is it possible to boot any (bootable) .iso file over the network?
    maybe iSCSI or AoE ?
    iSCSI boot os over network.

    ty

  8. For anyone getting an error message saying that line 4 of winnt.sif is invalid, you just have to delete and rewrite every single quote after you paste the content of the winnt.sif file in notepad

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.