#! /usr/bin/env bash TFTPDIR=/srv/tftp MENU=$TFTPDIR/boot.txt DEFAULTCONFIG=$TFTPDIR/pxelinux.cfg DEFAULTFILE=$DEFAULTCONFIG/default MIRROR=ftp://ftp.us.debian.org DOWNLOADDIR=/tmp TEMPDIR=$DOWNLOADDIR/working mkdir -p $DEFAULTCONFIG if [ ! -e $DEFAULTFILE ] then echo 'DISPLAY boot.txt' > $DEFAULTFILE echo '' >> $DEFAULTFILE echo 'prompt 1' >> $DEFAULTFILE echo 'timeout 0' >> $DEFAULTFILE echo '' >> $DEFAULTFILE fi if [ ! -e $MENU ] then echo 'Available Boot Options:' > $MENU echo '=======================' >> $MENU echo '' >> $MENU fi for arch in i386 amd64 do for dist in jessie wheezy do echo Setting up $dist, $arch THISDOWNLOAD=$DOWNLOADDIR/$dist/$arch if [ ! -e $THISDOWNLOAD/netboot.tar.gz ] then mkdir -p $THISDOWNLOAD cd $THISDOWNLOAD wget -q $MIRROR/debian/dists/$dist/main/installer-$arch/current/images/netboot/netboot.tar.gz fi if [ -e $TEMPDIR ] then rm -fR $TEMPDIR fi mkdir -p $TEMPDIR cd $TEMPDIR tar -xzf $THISDOWNLOAD/netboot.tar.gz THISINSTALL=$TFTPDIR/debian/$dist if [ -e $THISINSTALL ] then rm -fR $THISINSTALL fi mkdir -p $THISINSTALL mv $TEMPDIR/debian-installer/* $THISINSTALL/ # create an entry in default and menu echo label $dist\_$arch\_install >> $DEFAULTFILE echo "menu label ^Install $dist $arch" >> $DEFAULTFILE echo "kernel debian/$dist/$arch/linux" >> $DEFAULTFILE echo "append vga=normal initrd=debian/$dist/$arch/initrd.gz -- quiet" >> $DEFAULTFILE echo '' >> $DEFAULTFILE echo $dist\_$arch\_install \-\- Install Debian $dist $arch >> $MENU done done