PXE booting an installed debian system

In our networks lab some students have the task to build a compact linux cluster system. The cluster consists of 10 low-power boards we have lying around which serve as the cluster nodes and one board with a harddisk which serves as the master node. The whole cluster is meant to be a rendering farm for blender utilizing farmerjoe.

The 10 cluster nodes are diskless and need to boot via PXE from the master node’s harddisk.

Tutorials on the net are mostly for PXE booting an installation of some linux distro or for booting a prebuild live system like Knoppix.

What we need is to boot a customized linux environment with some modified scripts and some packages already installed (blender) – all this without messing around too much with initrds and init-scripts (time is short).

So here are the links that should get us going:

http://www.digitalpeer.com/id/linuxnfs
http://linux-sxs.org/internet_serving/pxeboot.html
http://www.jukie.net/bart/blog/nfsroot-on-debian

I’ll update this post as we’re working on the subject.

Theory ahead: Basically what we want is to get the DHCP/TFTP stuff set up. Package syslinux provides us with a pxeimage. We then debootstrap a fresh debian system into a nfs export share. Then there’s some ramdisk magic going on in one of the links. I think we can skip this step for now since it looks like it`s only needed if we don’t want the clients to write their locks onto the nfs share. We could (should) do this later.

After the debootstrapped environment is setup, we compile a fresh kernel, enabling some nfs stuff and install the kernel and all modules to the debootstrapped environment (in the nfs share).

We fire up our client, it gets the pxeimage, passes the nfsroot option to the kernel and should boot.

Looks not over-complicated. Friday I`m in the lab again and I`ll see if this stuff actually works.