Hi,

I am going to assume that you have a working dhcp and tftp server, that is already pxe booting something, if not there are many guides on the net to explain how to do these things. I used Debian Lenny with tftpd-hpa, so I will be focusing on these but it should be easy enough to adapt to any other distribution.

You will only need the bt4-final.iso file, mount it and copy the whole contents into a directory called bt4 in your PXE root.

Code:
mount -t iso9660 -o loop bt4-final.iso /mnt
mkdir -p [PXEROOT]/bt4
cp -r /mnt/* [PXEROOT]/bt4/
Look through [PXEROOT]/bt4/boot/grub/menu.lst and decide which one you want to boot, you can boot all of them you will just need to create multiple entries in the next step. I chose the following:

Code:
title                Start BackTrack FrameBuffer (1024x768)
kernel                /boot/vmlinuz BOOT=casper boot=casper nopersistent rw quiet vga=0x317
initrd                /boot/initrd.gz
I am asuming that you have a working PXE boot server already so you should have the file [PXEROOT]/pxelinux.cfg/default, in which case just add the following lines:

Code:
LABEL bt4
        KERNEL bt4/boot/vmlinuz
        APPEND initrd=bt4/boot/initrd.gz BOOT=casper boot=casper nopersistent rw quiet vga=0x317 netboot=nfs nfsroot=[SERVERIP]:[PXEROOT]/bt4
Here is an example full [PXEROOT]/pxelinux.cfg/default file that only boots bt4:

Code:
TIMEOUT 100
DEFAULT bt4
PROMPT 1
DISPLAY /isolinux.msg
LABEL bt4
        KERNEL bt4/boot/vmlinuz
        APPEND initrd=bt4/boot/initrd.gz BOOT=casper boot=casper nopersistent rw quiet vga=0x317 netboot=nfs nfsroot=[SERVERIP]:[PXEROOT]/bt4
The main thing to note here is we are only appending 'netboot=nfs nfsroot=[SERVERIP]:[PXEROOT]/bt4' to the original line in the grub configuration. Create the file [PXEROOT]/isolinux.msg and put something like 'type bt4 to boot Backtrack 4 Final' in it.

Now on Debian type the following command to install nfs, if you are using a different distribution google will be able to tell you how to install nfs:

Code:
apt-get install nfs-common nfs-kernel-server portmap
Edit /etc/exports and add the line:

Code:
[PXEROOT]/bt4   [LOCALSUBNET](sync,no_root_squash,ro,no_subtree_check)
You can restrict it to a certain IP but I used the whole subnet for convenience. Lastly type 'exportfs -a' and you should be ready to go! Just boot up a pc, boot from the network card, type bt4 at the prompt and alas bt4 over the network!

Happy Hacking!