Last Revised: 8/05/05
What better way is there to compliment your new universal Ghost image and impress your boss then a universal network boot disk? A PXE server? OK, so maybe it's not the greatest thing in the world, but it sure beats carrying around lots of floppies with you. Not to digress, but why is it that we are still using floppies? The IBM PC was invented in 1981 and here it is 2005 and just last year Microsoft sent out a white paper to companies pleading with them to support booting from USB Flash Devices (UFD). Come on guys, wake up! UFDs are bigger, more reliable and a lot more fun than floppies. Now that Windows PE 2005 supports booting from UFDs we need to pressure these companies to support booting from them.
OK, back to the network boot disk. The one I'm talking about is Bart's Network Boot Disk. One word: freeware. Yes, freeware! I love Bart! He's also the one that makes PE Builder. Check it out: it's very cool stuff! Download the full BFD package and extract it to a directory. Now execute "bfd msnet A:" from the command line. This will make a self-booting network boot disk using the MS-DOS 7.1 files (an interesting side note here is that Bart has had legal problems with Microsoft and PE Builder. It's a mystery then why he would bundle the MS-DOS 7.1 files directly into this package even though these files are available in particularly every corner of the Internet). Congrats, you just made a universal network boot disk!
Listed on the same page are driver CAB files for practically every NIC ever made! Now here's the slick part: you can just drop in the CAB files you need into A:\lib\ndis and the disk will rebuild itself accordingly! How cool is that? You'll notice that the drivers haven't been updated for at least 2 years and may not include support for the latest NICs. That was the problem when we got in motherboards supporting the Intel 915 chipset. The network boot disk would not find the NIC and even when we manually picked it off the menu the driver would not work (it was a variant of the Intel Pro 100VE). Let's look into how the boot disk works. Every PCI device has a unique hexadecimal id. Let's boot from the network boot disk you created and run pciscan -v:
We can clearly see that there are vendor ids and device ids. Based on these two pieces of information the boot disk can determine what driver to load. If you download PCISCAN from his web site it gives a much better explaination then I give. PCISCAN gets its information from nic.map. Let's look for this vendor id in this file:
ret="SMCPWR2.COM"
ven=10B8 "SMC"
dev=0005 "SMC9432TX EtherPower II 10/100"
ven=1011 "DEC"
dev=0002 "DC21040"
0014 "DC21041"
0009 "DC21140"
0019 "DC21143"
There is it! I booted the disk using Virtual PC 5 and this is the type of NIC it emulates. So 1011=DEC and 0009 = model DC21140. Let's take a look inside one of these CAB files sitting in A:\lib\ndis: