Origin location of pxelinux.0 inside fai-make-nfsroot

Ronan Keryell ronan at keryell.fr
Mon Oct 6 22:10:22 CEST 2014


After 10 years away from FAI, I am happily back on using it. :-)

I have an issue with fai-make-nfsroot around lines 492--508 :

f083d3ba bin/fai-make-nfsroot     (Thomas Lange       2012-04-10 13:40:12 +0200 492)     # tftp environment
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 493)     local pxebin
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 494) 
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 495)     # wheezy/jessie pathes
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 496)     if [ -f $NFSROOT/usr/lib/PXELINUX/pxelinux.0 ]; then
0e5df8c6 bin/fai-make-nfsroot     (Thomas Lange       2014-08-25 23:11:20 +0200 497)         pxebin=$NFSROOT/usr/lib/PXELINUX/pxelinux.0
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 498)     else
0e5df8c6 bin/fai-make-nfsroot     (Thomas Lange       2014-08-25 23:11:20 +0200 499)         pxebin=$NFSROOT/usr/lib/syslinux/pxelinux.0
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 500)     fi
b8e70a3e bin/fai-make-nfsroot     (Thomas Lange       2014-08-24 22:18:51 +0200 501) 
6e9dc307 bin/make-fai-nfsroot     (Thomas Lange       2007-06-12 14:53:01 +0000 502)     rm -f $NFSROOT/boot/*.bak
371855ed bin/make-fai-nfsroot     (Thomas Lange       2007-08-12 14:08:14 +0000 503)     mkdir -p $TFTPROOT/pxelinux.cfg
451b235e bin/fai-make-nfsroot     (Thomas Lange       2012-11-28 15:31:04 +0100 504)     chmod a+r $NFSROOT/boot/initrd.img-*
b2b266d9 bin/fai-make-nfsroot     (Thomas Lange       2012-04-25 22:13:53 +0200 505)     cp -pv $NFSROOT/boot/vmlinu?-* $NFSROOT/boot/initrd.img-* $TFTPROOT
6bed5337 bin/fai-make-nfsroot     (Thomas Lange       2014-08-30 21:37:48 +0200 506)     cp -u $pxebin $TFTPROOT
6bed5337 bin/fai-make-nfsroot     (Thomas Lange       2014-08-30 21:37:48 +0200 507)     [ -f /usr/lib/syslinux/modules/bios/ldlinux.c32 ] && cp -u /usr/lib/syslinux/modules/bios/ldlinux.c32 $TFTPROOT
8b73f0ad bin/fai-make-nfsroot     (Thomas Lange       2013-11-25 13:09:18 +0100 508)     echo "TFTP environment prepared. Enable DHCP and start the TFTP daemon on root $TFTPROOT."


It is not clear to me why pxelinux.0 is fetched from $NFSROOT instead of the
local file system?

The case of pxelinux.0 seems to be the same for example as ldlinux.c32
which comes from the local file system in the code sample above.

Rationale :
- there would be no need to install pxelinux in each NFSROOT;
- it is more related to the server than the client using NFSROOT.
- this makes the example from
  http://wiki.fai-project.org/wiki/Installing_Ubuntu_Linux_with_FAI to
  fail because there is no pxelinux package installed on the NFSROOT
  according to the given content of /etc/fai/NFSROOT

If that makes sense, I can send a pull request to have this code instead:
if [ -f /usr/lib/PXELINUX/pxelinux.0 ]; then
    pxebin=/usr/lib/PXELINUX/pxelinux.0
else
    pxebin=/usr/lib/syslinux/pxelinux.0
fi

Thank you,
-- 
  Ronan KERYELL.


More information about the linux-fai-devel mailing list