How to net boot from a small/flash disk

Copyright © 2003 Herbert Hanewinkel, Neuried


I had a DIMM PC board from Jumtpec with ethernet, floppy and a 16MB flask disk but without code for net booting in BIOS-ROM. With a .zdsk image from ROM-O-MATIC for the ethernet chip net boot worked fine from a floppy disk, but I wanted to avoid using a floppy for booting.

  1. The .com image available from ROM-O-MATIC seemed to be the solution for my problem.
    I had DOS already installed on the flash disk and tried to run the .com image from autostart.bat The system crashed at random soon after starting the .com image. This happened even with an empty config.sys.
    Checking the source code of the .com image header I no longer believe that it ever works. At the time the .com image executes DOS has hooked on the timer interrupt and some other BIOS interrupts. But the Etherboot ROM code is not a DOS program, it writes to fixed addresses in RAM overiding/destroying DOS. Restoring the BIOS timer interrupt before executing the ROM code improved the situation. The Etherboot code completed the download of the boot image, but crashed on executing it.
    I gave up on it and can only recommend

    Don't waste your time with a .com image from ROM-O-MATIC.

  2. The boot code of the .zdsk image doesn't work from a hardisk.
    The .com code fails.
    How to solve the problem?

    Searching for another solution I found the boot1a.S module from Luigi Rizzo in the Etherboot source tree. A boot code that can boot a floppy as well as a hard disk.
    It compiled fine on my FreeBSD system and ... it crashed.
    The directive to copy it in front of the .zrom code is wrong!!!
    The .zrom images have a header as well and boot1a must be followed by the Etherboot ROM code without any header.

    The solution is to replace the boot code (first 512 bytes) at the beginning of the zdsk image with the boot code from boot1a.

My steps: The result:
Previous Home