Ubuntu/Lubuntu

Ubuntu is a popular Linux Distro based upon Debian, available in 32-bit and 64-bit versions. Ubuntu can run as a live system or alternatively it can be installed to a local hard disk. Ubuntu version 11.04 (32-bit) was used during testing for the original version of this guide - version 16.04 is also working. For more information about Ubuntu refer to http://www.ubuntu.com/.


These instructions may also work on ubuntu derivatives - lubuntu version 16.04 booted successfully in tests.

Required Files

To PXE Boot Ubuntu 11.04, download the ISO file from http://old-releases.ubuntu.com/releases/.

Now create the folder \ubuntu1104\ in your Tiny PXE Server root directory - e.g. C:\pxesrv\files\ubuntu1104\.

Now extract the casper directory from the ISO (mount the ISO file using ImDisk, or extract using 7-zip, or use a tool of your choice) and copy it to C:\pxesrv\files\ubuntu1104\. Your Tiny PXE Server directory structure should contain the following files (files may differ if using an alternative version of ubuntu) -

NOTE - on 64-bit builds you may need to replace references to vmlinuz with vmlinuz.efi.

Create NFS Share

To PXE boot Ubuntu Linux a Network File System (NFS) share is required - it is not possible to boot directly from the ISO file.

The C:\pxesrv\files\ubuntu1104\ directory will need to be shared - the WinNFSd server included in the Tint PXE Server download package can be used to do this. Extract winnfsd.exe from WinNFSd-2.0.zip to C:\pxesrv\. Now run the following command to share the C:\pxesrv\files\ubuntu1104\ directory (editing the paths as required to suit your own setup) -

Note - Running the above command will start WinNFSd in a command window - leave this window open as closing it will stop sharing the folder.

Now add a menu entry for your preferred Network Bootstrap Program -

pxelinux settings

Remember to ensure that the required files are copied to your Tiny PXE Server root directory -

Add the following to C:\pxesrv\files\pxelinux.cfg\default (create this file if required) -

The parameter containing the path to the NFS share may need to be edited to suit your own setup - for the syntax, refer to the nfsroot Syntax section.

Click on one of the following for sample config.ini settings (edit to reflect your own setup) -

grub4dos settings

Remember to ensure that the required files are copied to your Tiny PXE Server root directory -

Add the following to C:\pxesrv\files\menu.lst\default (create this file if required) -

The parameter containing the path to the NFS share may need to be edited to suit your own setup - for the syntax, refer to the nfsroot Syntax section.

Click on one of the following for config.ini settings (edit to reflect your own setup) -

iPXE settings

Remember to ensure that the required files are copied to your Tiny PXE Server root directory -

Add the following to the menu section of C:\pxesrv\files\ipxe_menu.txt (create this file if required) -

Add the following to the menu options section of C:\pxesrv\files\ipxe_menu.txt -

E.g. -

NOTE - remember to change set boot-url http://${dhcp-server} if using ProxyDHCP.

The parameter containing the path to the NFS share may need to be edited to suit your own setup - for the syntax, refer to the nfsroot Syntax section.

Click on one of the following for config.ini settings (edit to reflect your own setup) -

iPXE Scripts

iPXE menus are essentially complicated scripts. It's also possible to specify a script using the altfilename option in config.ini. NOTE - remember to change set boot-url http://${dhcp-server} if using ProxyDHCP.

Sample iPXE script -

nfsroot Syntax

The parameter containing the path to the NFS share may need to be edited to suit your own setup. Syntax is -

Where -

Assuming the SERVER IP Address is 192.168.2.1 and the path to the NFS share is C:\pxesrv\files\ubuntu1104\ we would use the following in the nfsroot parameter in the PXELINUX, Grub4dos and iPXE menus -

Or alternatively for iPXE with Tiny PXE Server set as DHCP server -

Or for iPXE with Tiny PXE Server set as ProxyDHCP server -

Document date - 28th February 2017(DRAFT)