Create a new directory on your DHCP server machine called /tftpboot and run make install. Copy the pxegrub executable image from /opt/share/grub/i386-pc to the /tftpboot directory.
Modify the /etc/dhcpd.conf file to allow the network machine to download the pxegrub image and configuration menu, as follows:
# dhcpd.conf # # Sample configuration file for PXE dhcpd # subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.2 192.168.0.250; option broadcast-address 192.168.0.255; option domain-name-servers 192.168.0.1; } # Hosts which require special configuration options can be listed in # host statements. If no address is specified, the address will be # allocated dynamically (if possible), but the host-specific information # will still come from the host declaration. host testpxe { hardware ethernet 00:E0:29:88:0D:D3; # MAC address of system to boot fixed-address 192.168.0.3; # This line is optional option option-150 "(nd)/tftpboot/menu.1st"; # Tell grub to use Menu file filename "/tftpboot/pxegrub"; # Location of PXE grub image } # End dhcpd.conf
option pxe-menu code 150 = text;
Then instead of using option option-150, use:
option pxe-menu "(nd)/tftpboot/menu.1st";)
Here's an example of the menu.1st file:
# menu.1st start default 0 # default OS image to load timeout 3 # seconds to pause before loading default image title Neutrino Bios image # text displayed in menu kernel (nd)/tftpboot/bios.ifs # OS image title Neutrino ftp image # text for second OS image kernel (nd)/tftpboot/ftp.ifs # 2nd OS image (optional) # menu.1st end