menu-gen.sh contains a number of configuration variables at the top; you will need to edit HDA_IP to match the IP address of your HDA at the very least. The TIMEOUT variable also needs to match the automount timeout set in part one so that your machine doesn't run out of loop devices.
Now run the script to generate the menus based on the ISOs on your system and the distributions the script knows about:
{{Code|
Code=iso-boot/menu-gen.sh
}}
Note that the script will appear to run slowly as it waits for each ISO to time out before moving on to the next one.
The last stage in setting up the menus, we need to add an entry in pxelinux.cfg/default to link to the generated menus. Open pxelinux.cfg/default in your favourite editor and add:
{{Code|
LABEL linux-boot
MENU LABEL Boot from ISO images
kernel menu.c32
append iso-boot/conf/boot.conf
}}
With the menus created, we just have two final steps to take. First, the kernel and initrd need to be available under the tftp directory structure. Fortunately, the automounter can take care of this for us; simply add the following additional to /etc/auto.master:
{{Code|
Code=/usr/share/amahi-netboot/tftp/iso-boot/mnt /media/.iso-fs.map ro,loop --timeout=5
}}
...and then restart the automounter:
{{Code|
Code=service autofs restart
}}
Secondly, we need to enable NFS and export the relevant directories. Assuming you have NFS installed and running, edit /etc/exports to add:
{{Code|
Code=/media 192.168.147.0/24(ro,crossmnt)
}}
And then issue service nfs restart to load the new export table.
=== Known Issues ===
#The menu-gen.sh script doesn't currently work for some images, notably those based on the dracut system
#menu-gen.sh is a first attempt; it currently needs to be taught about new distributions and where to find the kernel and initrd image on each type of ISO. Suggestions and improvements to make it smarter greatly appreciated.
#Occasionally, if you don't shutdown the PXE booted system cleanly, the automounter is unable to release the mount point