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 on Debian 8 :

allow booting;
allow bootp;

subnet netmask {
option domain-name-servers debian-serv.private.lan;
option domain-name “private.lan”;
option routers;
option broadcast-address;
default-lease-time 600;
max-lease-time 7200;
filename “/geexbox/boot/pxelinux.0”;

The next-server option is the address of the TFTP server. Then, configure your TFTP server (such as tftpd-hpa) to serve the /srv/tftp directory and copy a full GEEXBOX tree into this directory. For example, you can copy the contents of a GeeXboX CD from Linux like that :

Assuming geexbox iso is mounted to /media/geexbox, you can do this :

mkdir /srv/tftp/geexbox
cp -r /media/geexbox/* /srv/tftp/geexbox
mv /srv/tftp/geexbox/isolinux /srv/tftp/geexbox/boot
mv /srv/tftp/geexbox/vmlinuz /srv/tftp/geexbox/boot
mkdir /tmp/mnt-rootfs
mount -o loop /srv/tftp/geexbox/rootfs /tmp/mnt-rootfs
cp -r /tmp/mnt-rootfs/* /srv/tftp/geexbox
umount /tmp/mnt-rootfs

You can now delete safely /srv/tftp/geexbox/rootfs file

Here is an example of the file /etc/default/tftpd-hpa (using verbose option)

# /etc/default/tftpd-hpa

TFTP_OPTIONS=”–secure -v”

Then you should edit the file /srv/tftp/geexbox/boot/pxelinux.cfg/default to set nfsroot to the right NFS path to the GEEXBOX tree.

LABEL geexbox
MENU LABEL Start GeeXboX  over nfs…
KERNEL /vmlinuz
APPEND rw root=/dev/nfs nfsroot= ip=dhcp

As we are using ip=dhcp, we must disable connman manager in our exported tree : (not needed for devel built after 2017/04/30)

mv /srv/tftp/geexbox/lib/systemd/system/connman.service /srv/tftp/geexbox/lib/systemd/system/connman.service2

Finally set up your NFS to export the GEEXBOX tree with a /etc/exports that contains something like this :

/srv/tftp/geexbox *(rw,no_root_squash)

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.