Patch 0.97-os.3 adds support for PXE capable networks cards and thus allows TFTP downloading with all recent network cards, like e1000, e100, Broadcom (bnx2, b44, tg3), 3com and others. To apply the patch you might want to do something like the following: - go to some writable directory like /tmp $ wget ftp://alpha.gnu.org/gnu/grub/grub-0.97.tar.gz $ wget http://os.inf.tu-dresden.de/~adam/grub/0.97/grub-0.97-os.3.diff.gz $ tar xzf grub-0.97.tar.gz $ cd grub-0.97 $ zcat ../grub-0.97-os.3.diff.gz | patch -p0 Compile Grub with --enable-diskless --enable-pxe. Add --enable-pci-direct if you get "no BIOS32 detected". $ ./configure --enable-diskless --enable-pxe $ make (gcc-3.3 works) Then add stage2/pxegrub to your DHCP configuration as the NBP (network bootstrap program). $ cp netboot/pxegrub /tftp For ISC dhcpd add filename "/tftp/pxegrub"; in a e.g. host or group block. The default location to load initially is '(nd)/tftp/menu.lst'. To change this either change the corresponding line in stage2/asm.S and recompile or change the string in the pxegrub binary. There's space left after the string in the binary so that the new path and filename can be longer. This directory also contains a pxegrub binary, for use without first applying the patch and compiling. You can also change the initial path in binary directly as described above. Adam