PXE booting non-ROCKS hosts from ROCKS

This page describes how to adapt the ROCKS frontend for PXE booting non-ROCKS hosts and adding a menu boot selection. Instructions for using the existing PXEboot infrastructure are provided at RocksPXEbootServers.


A host defined with these database entries will be added to the /etc/dhcpd.conf file and can get an IP via DHCP request.

rocks \x93add host\x94 msufs16 cpus=7 rack=118 rank=14 membership=PXE os=linux
rocks add host interface msufs16 eth0
rocks set host interface ip msufs16 eth0
rocks set host interface name msufs16 eth0 msufs16
rocks set host interface mac msufs16 eth0 
rocks set host interface subnet msufs16 eth0 private
rocks sync config

In the \x93add host\x94 command, the cpus, rack and rank need to be specified even though that aren\x92t important to DHCP (just how it is). The os and membership values are also extraneous to our use, but required options. The membership needs to be previously defined in the DB. Add another appliance type like this (note that the appliance and membership names are just arbitrary strings):

rocks add appliance PXE membership=PXE

At this point the generated DHCP config for the host will look like:

        host msufs16 {
            hardware ethernet 90:b1:1c:18:e1:36;
            option host-name "msufs16";


Note that there are no \x93filename\x94 and \x93next-server\x94 entries that enable the PXE boot. (Attempted PXE boot will produce error \x93No boot filename received\x94.) ROCKS can handle setting these. Run this command:

rocks set appliance attr PXE kickstartable yes

Then regenerate the dhcpd config:

rocks sync config Once the appliance has been added and the kickstartable attribute set, other hosts added with the PXE appliance type will be set to PXE boot from the start.

(Note that it is also possible to customize the nextserver and filename settings, but not needed for this use. It may be possible to start iPXE this way...)

At this point, the PXe boot will result in the node attempting to run the ROCKS installer, which will fail because ROCKS can\x92t generate a kickstart file. Anyways, we don\x92t want the ROCKS installer run, we want our own thing. So alter the installaction for this node (menu action is previously define).

rocks set host installaction msufs16 action=menu

Now looking at the pxelinux.cfg file for this node, we see:

[root@msut3-rx ~]# more /tftpboot/pxelinux/pxelinux.cfg/0A0A8042 
default rocks
prompt 0
label rocks
    kernel menu/menu.c32
    append menu/main.menu


  • Finish these instructions
Topic revision: r1 - 31 Jul 2013, JamesKoll
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback