pxegrub

普通のgrubのパッケージで--enable-disklessとするとpxegrubが作れる。
PCNet/32の場合:--enable-lance
NE2000互換の場合:--enable-ns8390
Realtek8139の場合:--enable-rt8139

% cd grub-0.97
% ./configure --enable-diskless --enable-lance
% make
% cp stage2/pxegrub /var/lib/tftpboot

pxegrubはフロッピーイメージから起動するコマンドがないと思ったら、
memdiskをカーネル代わりに使うようだ。

Re: [grub #30] Can pxegrub boot a diskless dos?
title Network Boot
root (nd)
kernel /memdisk
initrd /boot.img

http://www.mail-archive.com/bug-grub@gnu.org/msg06640.html

memdiskはsyslinuxのパッケージの中に入っている。
バイナリファイルがすでにあるので、特にmake等は必要なし。

% tar jxf syslinux-3.52.tar.bz2
% cp syslinux-3.52/memdisk/memdisk /var/lib/tftpboot

pxelinux

結局syslinuxのパッケージもとってくるんだったら、素直にpxelinuxを使えばいいような気もする。

コマンドラインで
memdisk initrd=boot.img

またはpxelinux.cfgで
label memdisk
kernel memdisk
append initrd=boot.img

そういえば、pxegrubの場合はLANカード毎のソースを使ったけど、bpbatchやpxelinuxはなんでそういうことが不要なんだろ