PXE booting to BARTPE

From SME Server
Jump to navigation Jump to search


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

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 foo
   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?