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/.
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.
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 -
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) -
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) -
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 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 -
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)