Skip to content
gumanzoy edited this page Aug 5, 2025 · 1 revision

PXE network boot PocketHandyBox

Need access to folders live, live32 by NFS path /srv/pxe/
NFS path can be changed by nfspath= param, for example nfspath=/srv/phb/
Need to pass IP address of NFS server by param ip=
Or for syslinux/pxelinux bootloaders, just add ipappend 1 to the config.

Bootloader config file pxelinux.cfg/default

default phbram
timeout 300
prompt 1
label phb
  kernel live/vmlinuz1
  append initrd=live/initrd1.xz nvidia=detect noauto mitigations=off nvme_core.default_ps_max_latency_us=5500
  ipappend 1
label phbram
  kernel live/vmlinuz1
  append initrd=live/initrd1.xz copy2ram nvidia=detect noauto mitigations=off nvme_core.default_ps_max_latency_us=5500
  ipappend 1
label phb5
  kernel live/k510/vmlinuz1
  append initrd=live/k510/initrd1.xz nvidia=detect noauto mitigations=off nvme_core.default_ps_max_latency_us=5500
  ipappend 1
label phb5ram
  kernel live/k510/vmlinuz1
  append initrd=live/k510/initrd1.xz copy2ram nvidia=detect noauto mitigations=off nvme_core.default_ps_max_latency_us=5500
  ipappend 1
label phb32
  kernel live32/vmlinuz1
  append initrd=live32/initrd1.xz noauto mitigations=off
  ipappend 1
label phb32ram
  kernel live32/vmlinuz1
  append initrd=live32/initrd1.xz copy2ram noauto mitigations=off
  ipappend 1

Setup PXE server

Any Linux distribution can be used.

It is assumed that these actions will be performed on the DHCP server of your network.

Or one of the computers on the network has a second network card installed and NAT is configured.
And DHCP server for PXE is configured only for an isolated network segment.

  • Please install required packages (the package names are given for Debian/Ubuntu):
sudo apt-get install dnsmasq nfs-kernel-server pxelinux syslinux-common syslinux-efi
  • Create /srv/pxe/ folder.
    Copy folders live, live32 from the pocket-handybox .iso image to /srv/pxe/ folder.

  • Create symbolic links for bootloader files in /srv/pxe/ (the file paths are given for Debian/Ubuntu):

sudo bash
cd /srv/pxe/
ln -s /usr/lib/PXELINUX/pxelinux.0
ln -s /usr/lib/syslinux/modules/bios/ldlinux.c32
ln -s /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi
ln -s /usr/lib/syslinux/modules/efi64/ldlinux.e64
  • Create folder /srv/pxe/pxelinux.cfg/ and create config pxelinux.cfg/default inside.

  • Configure some network adapter for static IP.
    Configure /etc/dnsmasq.conf
    interface=
    dhcp-range=

  • Add to /etc/dnsmasq.conf

enable-tftp
tftp-root=/srv/pxe

dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
dhcp-match=set:bios,option:client-arch,0
dhcp-boot=tag:efi-x86_64,"syslinux.efi"
dhcp-boot=tag:bios,"pxelinux.0"
  • Add to /etc/exports
/srv/pxe *(ro,crossmnt,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
  • Restart dnsmasq and nfs-kernel-server

Now you can boot PocketHandyBox via PXE.

Clone this wiki locally