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