PXE booting to BARTPE
PXE booting to ISO
Goal
We want to boot ISO images via PXE (rather than through CD). This means that, as long as we have enough RAM in the local pc's, we can boot BARTPE, WINPE and any LIVE CD (such as KNOPPIX, PCLINUXOS, UBCD, etc).
Assumptions
You are a network/server administrator and know what TFTP, BARTPE and PXE -a network boot- means. Your SME SERVER is your DHCP server.
Install TFTP package on your SME SERVER
-install SMESERVER-TFTP-SERVER on your SME SERVER: http://wiki.contribs.org/Tftp_server
Create a BARTPE.ISO on your local pc
-download BARTPE on your local pc: http://www.nu2.nu/pebuilder/
-create a BARTPE disk using WINDOWS SERVER 2003 source (i386 directory)
-or if you don't have a WINDOWS SERVER 2003 source, you can use a WINDOWS XP SP2 source (i386 dir) but you'll have to replace the following file with a newer version from the WINDOWS SERVER 2003 SP1 download (see next section):
C:\pebuilder3110a\BartPE\I386\SYSTEM32\DRIVERS\ramdisk.sys
-you now have a BARTPE.ISO (on your local pc)
Obtain WINDOWS SERVER 2003 SP1 files needed
-download the WINDOW 2003 SERVER SP1: http://www.microsoft.com/downloads/details.aspx?FamilyId=22CFC239-337C-4D81-8354-72593B1C1F43&displaylang=en
(You now have a file called: WindowsServer2003-KB889101-SP1-x86-ENU.exe)
-open WINRAR to open the WindowsServer2003-KB889101-SP1-x86-ENU.exe file (the W2K3 file is just a self-extracting ZIP/CAB/TAR file)
-extract only the following files from the W2K3SP1:
ntdetect.com ramdisk.sy_ setupldr.ex_ startrom.n1_
-The underscore files are compressed. We need to decompress/expand them:
expand ramdisk.sy_ expand setupldr.ex_ expand startrom.n1_
(You only need the ramdisk.sys file if you don't have a WINDOWS 2003 SERVER source to build your BARTPE from. See above section.)
Transfer files to SME SERVER
-copy the following files to the SME SERVER in the "/tftpdboot" directory:
ntdetect.com setupldr.exe startrom.n12 bartpe.iso
Work with files in the TFTPDBOOT dir
-the files are case-sensitive and need to be named exactly as follows:
ntdetect.com (lower-case) NTLDR (rename the setupldr.exe to NTLDR, all caps) startrom.0 (rename the startrom.n12 to startrom.0) (This is a ZERO) BARTPE.ISO (all caps)
-create a winnt.sif:
vi winnt.sif
-the contents of the winnt.sif file:
[SetupData] BootDevice = "ramdisk(0)" BootPath = "\i386\System32\" OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso"
-create a pxelinux.cfg directory:
mkdir pxelinux.cfg
-change to pxelinux.cfg dir and create a default file:
cd pxelinux.cfg vi default
-the contents of the default file:
prompt 1 implicit 0 timeout 600 default foo LABEL bartpe kernel startrom.0
Summary of contents of TFTPBOOT dir
[root@server tftpboot]# ls -la total 941492 drwxr-xr-x 3 root root 4096 Dec 3 15:43 . drwxr-xr-x 27 root root 4096 Nov 30 13:31 .. -rw-r--r-- 1 root root 159930368 Dec 3 14:18 BARTPE.ISO -rw-r--r-- 1 root root 47772 Mar 24 2005 ntdetect.com -rw-r--r-- 1 root root 278016 Mar 24 2005 NTLDR -rw-r--r-- 1 root root 13204 Sep 4 2006 pxelinux.0 drwxr-xr-x 2 root root 4096 Apr 18 2007 pxelinux.cfg -rw-r--r-- 1 root root 24466 Mar 24 2005 startrom.0 -rw-r--r-- 1 root root 1473787 Apr 5 2006 vmlinuz -rw-r--r-- 1 root root 169 Dec 3 15:44 winnt.sif
Boot client PC
-that should do it! Start your client PC and boot from the network.
-at the prompt, when it asks for an image type: foo
-pretty cool, huh?