GeeXboX for PC – Booting from Network


Booting from PXE using NFS shares …

GeeXboX comes with NFS shares support, and lets you boot from the network with a diskless station using the PXE boot method.
To achieve this you will need :
  • a DHCP server
  • a TFTP server
  • a NFS server
  • a PXE capable station

Using a GNU/Linux system :

First, configure your DHCP server to send PXE boot information.

Here is an example using ISC DHCP :

allow booting;
allow bootp;

subnet netmask {
option subnet-mask;
option broadcast-address;
filename “/tftpboot/GEEXBOX/boot/pxelinux.0”;

The next-server option is the address of the TFTP server. Then, configure your TFTP server (such as atftpd) to serve the /tftpboot directory and copy a full GEEXBOX tree into this directory. For example, you can copy the contents of a GeeXboX CD from Linux. If you’ve built the GeeXboX yourself from sources, you can also generate the GEEXBOX tree with make pxe.

Then you should edit the file /tftpboot/GEEXBOX/boot/pxelinux.cfg/default to set nfsroot to the right NFS path to the GEEXBOX tree.
Finally set up your NFS to export the GEEXBOX tree with a /etc/exports that contains something like this :

/tftpboot/GEEXBOX (ro)

and a /etc/hosts.allow which contains something like :


That should do the trick. Boot your PXE station and see what happens …

Using a Microsoft Windows system :

In order to boot in PXE mode from a Windows host, you’ll need the following software :

  • TFTP and a DHCP Server (for example tftpd32 ).
  • NFS Server (for example Allegro NFS server ).
  • A computer supporting PXE boot mode.

Download and uncompress (no need to install) the tftpd32 folder somewhere on your disk. In this example, lets assume it is : C:\tftpd32

Copy the complete GEEXBOX tree in the same directory (C:\tftpd32\GEEXBOX)

Start tftpd32 :

  • Choose the C:\tftpd32 folder for “current directory“.
  • Choose the interface (network card) to be used in “server interface“. In the example here it’s
  • Go in “setting” and make sure DHCP server is checked (enabled)
  • In the “DHCP server” tab, fill in all the box using the following example (Please refer to some documentation about DHCP all around the net in order to understand) :


  • IP starting pool :
  • Size of pool : 10
  • Boot file : ./GEEXBOX/boot/pxelinux.0
  • WINS/DNS server :
  • Default router :
  • Mask :
  • Domain name :

– Click “save” to apply modifications.

First part is done, you can now boot the client computer (the one starting GeeXboX), and will see it loading until the logo appears. After a while it’ll freeze because your NFS server is not set yet.

Install “Allegro NFS server” and fill in the boxes following these settings :

Exports tab : 

  • Add a “new name” : and call it “/tftpboot/GEEXBOX
  • In “path” just below : choose “C:\tftp32\GEEXBOX” folder
  • In “allowed host list” , choose “all
  • Read write“, and “read only user list“, choose “root” and “everyone” (if you want some log just check all in the last tab)

Apply settings.

Don’t forget to modify the file : C:\tftp32\GEEXBOX\boot\pxelinux.cfg\default and change the IP address “” to “” (or the one you’ve previously setup).

Just start the client computer and now GeeXboX should be running fine.

Leave a Reply