why pay?
the freeware review  
« UltraVNC SC - Easier Remote Tech Support with Reverse VNC Configuration
TMPGEnc – Easy *.avi to *.mpg Conversion »

Tftpd32 for Windows - Unleash the PXE BIOS Network Boot Feature Within

Floppy drives are a thing of the past and CD drives seem to be on their way out as well. USB flash drives and higher definition optical disks have replaced them. Today, newer portable data technologies appear faster than ever to satisfy the insatiable cutting edge appetite.

I remember when floppy disks were phasing out in the late 1990s. My friend showed me his new Apple MacBook and how it was so advanced that Apple didn’t even install a floppy disk drive. With the obsoleteness of floppy disks and CDs, how then do we boot our computers nowadays? What if the Windows partition on one of my systems has a freak accident and my partition managing software is on a floppy disk. Well, I could do one of several options.

Boot Options and Computer Pantywaist Comebacks

  • I could download a Live-on-CD distribution of Linux (like Knoppix) and burn it on a CD. But I’m scared to use Linux and it's too complicated to use!
  • I could boot from USB. It's too complicated to make a bootable USB flash drive. It has not been standardized yet. Plus, my BIOS might not support it!
  • I could burn a floppy image onto a CD and make the CD bootable. I just don’t want to do that! (What the heck!)
  • I could boot the computer with my network adapter's PXE (Preboot Execution Environment) function. What the heck is that!?

Network Boot

pxe_na.jpgLike I said in my Wake-on-LAN PHP article, I like to fiddle with the options in the system BIOS. Occasionally, I have to change the boot order to accommodate some of my hacks. I've learned that I can boot a hard disk, an optical disk, a USB flash drive, a floppy disk, a flash card (CompactFlash), and a network adapter. I was already familiar with all of the possibilities except for the last one. The network adapter option always intrigued me. “Boot from my Ethernet card? How novel!”

My curiosity finally got the best off me when I researched PXE this past week. Network adapter booting is an old technology. Integration with the BIOS became common in the late 1990s when Intel released its new specification for BIOS features. One of the mandatory features was PXE. In PXE, the computer can boot an operating system without any non-volatile memory like magnetic or optical media. After the CMOS POST test, the network adapter broadcasts a DHCP request. This request isn’t like any normal IP lease request. This special request appends some extra data at the end of the broadcast for PXE functionality. If a PXE-capable DCHP server does not respond, then the system halts or moves to the next boot order. However, if a PXE-capable DHCP server is listening on the network, it leases an IP address in its pool and it TFTPs the bootstrap (operating system) code. The code is placed in the host memory and is executed.

PXE DCHP-capable Server Daemon in Windows

Unfortunately, PXE works best with Linux, which I’m not very familiar with. I looked for a Windows alternative and I found TFTPD32. It's pretty decent. Usage of the program can be a little tricky though since there's not a lot of documentation. Basically, I followed the instructions on this article and this site. Below is my rough procedure.


pxe_tftp.jpg

  1. Download TFTPD32.
  2. Create a folder called "PXE."
  3. Extract tftpd32.exe to the PXE folder.
  4. Download pxelinux.0, menu.c32, and memdisk. Or, just extract files from a syslinux distribution. Place these three files in the PXE folder.
  5. Move your floppy drive images to the PXE folder. For more information on these files, take a look at my virtual floppy drive article.
  6. Create a subdirectory in PXE called "pxelinux.cfg"
  7. Create a file called "default" in the "pxelinux.cfg" folder.
  8. Edit the default file with a similar boot menu configuration file like the one below.

    CODE:
    1. DEFAULT menu.c32
    2. PROMPT 0
    3. NOESCAPE 0
    4. ALLOWOPTIONS 0
    5. TIMEOUT 50
    6.  
    7.  
    8. MENU TITLE My Boot Menu
    9.  
    10. # NTFS DOS
    11. LABEL DOS with NTFS
    12. MENU Windows ME Startup
    13. KERNEL memdisk
    14. APPEND initrd=dosntfs.img
    15.  
    16. # FreeDOS
    17. LABEL FreeDOS
    18. MENU GPL Version of DOS
    19. KERNEL memdisk
    20. APPEND initrd=freedos.img
    21.  
    22. # Linux Floppy
    23. LABEL Linux Floppy
    24. MENU Linux Floppy
    25. KERNEL memdisk
    26. APPEND initrd=bootfloppy-utils.img

  9. Run tftpd32.exe. If windows prompts you, allow the program to access the network.
  10. Click the DHCP Server tab and enter "pxelinux.0" in the "Boot File" field.
  11. Fill out the other fields as per your local network.
  12. Turn your target computer on while connected to the network. In the BIOS, make sure that Network Adapter is first on the boot priority order.

    pxe_pxe.jpg

The Verdict

TFTPD32 worked very well for me when I tried it. I was able to remotely boot almost any floppy image available. The only one that wasn't successful was the Linux floppy disk; I don't know why. One suggestion to the maker of this software, it would be ultra-cool if there was some sort of way that I could boot an ISO image off the network with PXE. But, I don't if the PXE specification would support that. All in all, I think it was pretty neat. I'll definitely turn to this first for my subsequent "floppy disk" boots. Since it is all electronic based (no magnetic or optical media), the speed surpasses any other boot method. Try it out! As usual, please feel free to leave any comments, questions, or suggestions below.



Related Articles

 

12 Responses to “Tftpd32 for Windows - Unleash the PXE BIOS Network Boot Feature Within”

  1. javier morales Says:

    Hey!!! Cheers from Mexico..

    I have do ALL you say here…. and it works :D

    I just want to install an OS over PXE BOOT.. i thired a lot of things.. but none of those linux tutorials or winpe things didn’t work..

    I have to use your trick! using boot floppy images to make the lan installation…

    I’ve searched for lanboot with floopy, i used the BART’s NetWork Boot Disk (the automake thing) Also used the NTFSDOS (loaded inside the shared folder) .. and.. thadaaaa… i can copy the install over the diskless laptop :D

    So long! great article!! YOU SAVE MY LAP! :D

  2. taophiq Says:

    Can i Install windowsxp with tftp32? i want to install it on a notebook i have without a dvd and doesnt support usb boot. i dont have winxp serveer too.

  3. mvn Says:

    GREAT tutorial! using your tutorial with some minor adjustments, i was able to recover a trueimage backup to a new hd on my diskless tablet pc!!

  4. anniyan Says:

    i follow you mentioned above and i can’t able to get memdisk and virtual floppy drive.
    how can i boot dos through pxe to winxp machine give some tips to complete as soon as possible thank you a lot.

  5. BobboBananna Says:

    Hi. Very useful information, thank you very much. Do you know how I can instead of this linux thing or instead of a floppy disk image boot up some version of Windows? XP for instance. How do I obtain\create a Windows XP boot image?

  6. felix Says:

    I am lost.. do not know how you got it to work, but when i reboot a machine, I was prompt PXE-M0F exiting Intel Boot Agent F1 to retry or F2 to setup. Can you point me where I\’ve done wrong

  7. dork Says:

    your link is Error 404 - Not Found. Download pxelinux.0, menu.c32, and memdisk. Or, just extract files from a syslinux distribution. Place these three files in the PXE folder.

  8. blogger Says:

    sorry. i corrected it. here it is: http://www.freewarereview.info/wordpress/wp-content/uploads/2007/06/combo.zip

  9. burnArd Says:

    Hi, I’ve managed to boot my laptop using the tutorial, and started up freedos as it was the only image I had, however I can’t see the HDD on my laptop? any ideas?

    Great tutorial by the way….

  10. blogger Says:

    Try to boot freedos without the pxe (floppy or cd) to see if the pxe is the problem first.

    My guess is that your filesystem is NTFS or your HDD is sata (not the older eide/pata). try running fdisk. if you see partitions or a hdd, then your partitions a likely incompatible. if you don’t see partitions or a hdd, you have an incompatible hdd (most likely sata).

    good luck!

  11. burnArd Says:

    Thanks for the response. You are right, my partitions are NTFS. I ran fdisk /xo and then I was able to change which of my partitions is the active one, which then lets me boot my old windows install and recover all my data, which was why I started down this PXE network boot in the first place.

    Now I’ve got it all working, I shall keep playing…

    Many thanks.

  12. HP2133 Upgrading BIOS woes....any suggestions? Says:

    [...] Tftpd32 for Windows - Unleash the PXE BIOS Network Boot Feature Within - the freeware review theres a [...]

Blog Network

Leave a Reply

Latest Post on Loading...: Please Wait...
admin admin