[pxeboot] On ajoute le script de génération du boot on lan à /usr/script/

Ignore-this: b017a302be49db1248c7e325770d9d00

darcs-hash:20121115132420-3a55a-efaea02b5b7e041443701ad82e01a3bc6c38eb62.gz
This commit is contained in:
Valentin Samir 2012-11-15 14:24:20 +01:00
parent 921c28e9a7
commit 9022007377

828
gestion/gen_confs/pxeboot Executable file
View file

@ -0,0 +1,828 @@
#!/bin/bash -x
#
# pxeboot.sh: création d'un répertoire TFTP de boot par PXE
# Copyright (C) 2008, Nicolas Dandrimont <Nicolas.Dandrimont@crans.org>
#
# Utilisation : pxeboot.sh IP_SRV_TFTP
# Définitions communes
TFTPROOT="/var/lib/tftpboot"
KSROOT="/var/www/pxe"
SKELETON="$TFTPROOT-base"
TMPDIR="/var/tmp/build-netboot"
ISODIR="/var/lib/tftpboot-g"
[[ $1 == "" ]] && echo "Il faut spécifier l'IP" && exit 1
OWN_IP="$1"
umount /var/lib/tftpboot/livecd/ubuntu/*
rm -rf $TFTPROOT || exit 1
# Définitions spécifiques au Sys Rescue CD
SYSRCCD_ARCHS="i386 amd64"
SYSRCCD_FTP="http://ftp.crans.org/pub/distributions/linux/systemrescuecd"
# Définitions spécifiques à Debian
DEBIAN_DISTS="squeeze wheezy"
DEBIAN_ARCHS="i386 amd64"
DEBIAN_FTP="ftp://ftp.crans.org/debian/dists"
#Image debian custom avec plus de drivers : http://kmuto.jp/debian/d-i/
DEBIAN_BACKPORT_DISTS="squeeze"
DEBIAN_BACKPORT_ARCHS="i386 amd64"
DEBIAN_BACKPORT_FTP="ftp://cdimage.debian.org/cdimage/unofficial/backports/"
# Définitions spécifiques à Ubuntu
UBUNTU_DISTS="maverick natty oneiric precise"
UBUNTU_ARCHS="i386 amd64"
UBUNTU_FTP="ftp://ftp.crans.org/ubuntu/dists"
UBUNTU_LIVE="10.10 11.04 11.10 12.04 12.10"
# il faut modifier le nfs et mettre les images dans $ISODIR/ubuntu/
# puis les monter et partager dans $TFTPROOT/livecd/ubuntu/$dist-$arch
UBUNTU_LIVE_ARCHS="i386 amd64"
# Définitions spécifiques à Mandriva
MANDRIVA_DISTS="2010.1 2010.2"
MANDRIVA_ARCHS="i586 x86_64"
MANDRIVA_FTP="ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official"
# Définitions spécifiques à CentOS
CENTOS_DISTS="5.6"
CENTOS_ARCHS="i386 x86_64"
CENTOS_FTP="ftp://mirror.in2p3.fr/pub/linux/CentOS"
# Définitions spécifiques à Fedora
FEDORA_DISTS="14 15 16 17"
FEDORA_ARCHS="i386 x86_64"
FEDORA_FTP="ftp://mirror.ovh.net/download.fedora.redhat.com/linux"
OPENSUSE_DISTS="11.4"
OPENSUSE_ARCHS="i386 x86_64"
OPENSUSE_FTP="ftp://ftp.free.fr/mirrors/ftp.opensuse.org/opensuse/distribution/"
# Définitions spécifiques à FreeBSD
FREEBSD_DISTS="7.4 8.2"
FREEBSD_ARCHS="i386 amd64"
FREEBSD_FTP="ftp://ftp.fr.freebsd.org/pub/FreeBSD/"
# Définition spécifiques à NetBSD
NETBSD_DIST="5.1"
NETBSD_ARCHS="i386 amd64"
NETBSD_FTP="ftp://iso.fr.netbsd.org/pub/NetBSD"
# Définitions spécifiques à OpenBSD
OPENBSD_DIST="4.9"
OPENBSD_ARCHS="i386 amd64"
OPENBSD_FTP="ftp://ftp.crans.org/mirror/OpenBSD"
####################################
# Vérifications
####################################
for dist in $UBUNTU_LIVE; do
for arch in $UBUNTU_LIVE_ARCHS; do
if ! test -e $ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso
then echo "$ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso n'existe pas" && exit 1
fi
done
done
mkdir -vp $TMPDIR
#mkdir -vp $TFTPROOT
#mkdir -vp $TFTPROOT/boot-screens
#mkdir -vp $TFTPROOT/pxelinux.cfg
#
##############################################
#cp $SKELETON/pxelinux.0 $TFTPROOT/
cp -ra $SKELETON $TFTPROOT
##############################################
cat > $TFTPROOT/pxelinux.cfg/default << EOF
include /boot-screens/menu.cfg
default /boot-screens/vesamenu.c32
prompt 0
timeout 0
EOF
cat > $TFTPROOT/boot-screens/menu.cfg << EOF
menu hshift 20
menu width 49
menu title Install-Party Cr@ns
menu background boot-screens/splash.png
menu vshift 18
menu rows 5
menu tabmsgrow 16
menu timeoutrow 17
menu tabmsg Press ENTER to boot or TAB to edit a menu entry
menu autoboot Starting Local System in # seconds
prompt 0
label bootlocal
menu label ^Boot from local disk
menu default
localboot 0
timeout 200 #timeout which is displayed, Wait 10 seconds unless the user types somethin
totaltimeout 1200 #timeout which executes the default definitely, always boot after 2 minutes
EOF
###########################
# sysrescuecd #
###########################
for arch in $SYSRCCD_ARCHS; do
mkdir -p $TFTPROOT/sysrescuecd/$arch/
wget -c $SYSRCCD_FTP/image/isolinux/initram.igz -O $TFTPROOT/sysrescuecd/$arch/initram.igz
wget -c $SYSRCCD_FTP/image/isolinux/rescue`echo $arch | sed -n 's/amd64/64/p'` -O $TFTPROOT/sysrescuecd/$arch/rescue
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin sysrescuecd
menu title Sysrescue Cd
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $SYSRCCD_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
label Sysrescuecd $arch
kernel sysrescuecd/$arch/rescue
append initrd=sysrescuecd/$arch/initram.igz dodhcp setkmap=fr boothttp=$SYSRCCD_HTTP/image/sysrcd.dat --
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# Fin sysrescuecd #
###########################
###########################
# DEBIAN #
###########################
for dist in $DEBIAN_DISTS; do
for arch in $DEBIAN_ARCHS; do
wget -c $DEBIAN_FTP/$dist/main/installer-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-debian-$dist-$arch.tar.gz
mkdir -p $TMPDIR/netboot-debian-$dist-$arch/
tar zxf $TMPDIR/netboot-debian-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-$dist-$arch/
mkdir -p $TFTPROOT/debian-$dist/$arch
cp $TMPDIR/netboot-debian-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-$dist/$arch
cp $TMPDIR/netboot-debian-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-$dist/$arch
wget -c $DEBIAN_FTP/$dist/main/installer-$arch/current/images/netboot/gtk/netboot.tar.gz -O $TMPDIR/netboot-debian-gtk-$dist-$arch.tar.gz
mkdir -p $TMPDIR/netboot-debian-gtk-$dist-$arch/
tar zxf $TMPDIR/netboot-debian-gtk-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-gtk-$dist-$arch/
mkdir -p $TFTPROOT/debian-gtk-$dist/$arch
cp $TMPDIR/netboot-debian-gtk-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-gtk-$dist/$arch
cp $TMPDIR/netboot-debian-gtk-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-gtk-$dist/$arch
wget -c $DEBIAN_FTP/$dist/main/installer-kfreebsd-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-debian-kfreebsd-$dist-$arch.tar.gz
mkdir -p $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/
tar zxf $TMPDIR/netboot-debian-$dist-kfreebsd-$arch.tar.gz -C $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/
mkdir -p $TFTPROOT/debian-$dist/kfreebsd-$arch/
cp -r $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/* $TFTPROOT/debian-$dist/kfreebsd-$arch/
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian
menu title Debian
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $DEBIAN_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-$dist
menu title Debian $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $DEBIAN_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-$dist-$arch
menu title Debian $dist $arch
label mainmenu
menu label ^Back..
menu exit
DEFAULT install
LABEL install
kernel debian-$dist/$arch/linux
append vga=normal initrd=debian-$dist/$arch/initrd.gz --
LABEL expert
kernel debian-$dist/$arch/linux
append priority=low vga=normal initrd=debian-$dist/$arch/initrd.gz --
LABEL rescue
kernel debian-$dist/$arch/linux
append vga=normal initrd=debian-$dist/$arch/initrd.gz rescue/enable=true --
LABEL auto
kernel debian-$dist/$arch/linux
append auto=true priority=critical vga=normal initrd=debian-$dist/$arch/initrd.gz --
menu end
EOF
done
for arch in $DEBIAN_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg <<EOF
LABEL Debian $dist kfreebsd-$arch
kernel debian-$dist/kfreebsd-$arch/grub2pxe
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-gtk-$dist
menu title Debian GTK $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $DEBIAN_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-gtk-$dist-$arch
menu title Debian GTK $dist $arch
label mainmenu
menu label ^Back..
menu exit
DEFAULT install
LABEL install
kernel debian-gtk-$dist/$arch/linux
append vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz --
LABEL expert
kernel debian-gtk-$dist/$arch/linux
append priority=low vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz --
LABEL rescue
kernel debian-gtk-$dist/$arch/linux
append vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz rescue/enable=true --
LABEL auto
kernel debian-gtk-$dist/$arch/linux
append auto=true priority=critical vga=normal initrd=debian-gtk-$dist/$arch/initrd.gz --
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# fin DEBIAN #
###########################
###########################
# DEBIAN BACKPORT #
###########################
rm -r $TMPDIR/netboot-debian-backport-*
for dist in $DEBIAN_BACKPORT_DISTS; do
for arch in $DEBIAN_BACKPORT_ARCHS; do
url=`wget $DEBIAN_BACKPORT_FTP/$dist/ -O- | grep netboot | grep $arch | sort | tail -n 1 | sed 's/">/ /'g | sed 's/href="//' | awk '{print $7}'`
wget -c $url -O $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz
mkdir -p $TMPDIR/netboot-debian-backport-$dist-$arch/
tar zxf $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-backport-$dist-$arch/
mkdir -p $TFTPROOT/debian-backport-$dist/$arch
cp $TMPDIR/netboot-debian-backport-$dist-$arch/debian-installer/$arch/initrd.gz $TFTPROOT/debian-backport-$dist/$arch
cp $TMPDIR/netboot-debian-backport-$dist-$arch/debian-installer/$arch/linux $TFTPROOT/debian-backport-$dist/$arch
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-backport
menu title Debian Backport
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $DEBIAN_BACKPORT_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-backport-$dist
menu title Debian Backport $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $DEBIAN_BACKPORT_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin debian-backport-$dist-$arch
menu title Debian Backport $dist $arch
label mainmenu
menu label ^Back..
menu exit
DEFAULT install
LABEL install
kernel debian-backport-$dist/$arch/linux
append vga=normal initrd=debian-backport-$dist/$arch/initrd.gz --
LABEL expert
kernel debian-backport-$dist/$arch/linux
append priority=low vga=normal initrd=debian-backport-$dist/$arch/initrd.gz --
LABEL rescue
kernel debian-backport-$dist/$arch/linux
append vga=normal initrd=debian-backport-$dist/$arch/initrd.gz rescue/enable=true --
LABEL auto
kernel debian-backport-$dist/$arch/linux
append auto=true priority=critical vga=normal initrd=debian-backport-$dist/$arch/initrd.gz --
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# fin DEBIAN BACKPORT #
###########################
###########################
# UBUNTU #
###########################
for dist in $UBUNTU_DISTS; do
for arch in $UBUNTU_ARCHS; do
wget -c $UBUNTU_FTP/$dist/main/installer-$arch/current/images/netboot/netboot.tar.gz -O $TMPDIR/netboot-ubuntu-$dist-$arch.tar.gz
mkdir -p $TMPDIR/netboot-ubuntu-$dist-$arch/
tar zxf $TMPDIR/netboot-ubuntu-$dist-$arch.tar.gz -C $TMPDIR/netboot-ubuntu-$dist-$arch/
mkdir -p $TFTPROOT/ubuntu-$dist/$arch
cp $TMPDIR/netboot-ubuntu-$dist-$arch/ubuntu-installer/$arch/initrd.gz $TFTPROOT/ubuntu-$dist/$arch
cp $TMPDIR/netboot-ubuntu-$dist-$arch/ubuntu-installer/$arch/linux $TFTPROOT/ubuntu-$dist/$arch
done
done
for dist in $UBUNTU_LIVE; do
for arch in $UBUNTU_LIVE_ARCHS; do
mkdir -p $TFTPROOT/livecd/ubuntu/$dist-$arch
mount -o loop $ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso $TFTPROOT/livecd/ubuntu/$dist-$arch
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin ubuntu-livecd
menu title Ubuntu LiveCd
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $UBUNTU_LIVE; do
for arch in $UBUNTU_LIVE_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
LABEL Ubuntu Livecd $dist $arch
KERNEL /livecd/ubuntu/$dist-$arch/casper/vmlinuz
APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=$OWN_IP:$TFTPROOT/livecd/ubuntu/$dist-$arch initrd=livecd/ubuntu/$dist-$arch/casper/initrd.lz --
EOF
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin ubuntu
menu title Ubuntu
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $UBUNTU_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin ubuntu-$dist
menu title Ubuntu $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $UBUNTU_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin ubuntu-$dist-$arch
menu title Ubuntu $dist $arch
label mainmenu
menu label ^Back..
menu exit
DEFAULT install
LABEL install
kernel ubuntu-$dist/$arch/linux
append vga=normal initrd=ubuntu-$dist/$arch/initrd.gz --
LABEL expert
kernel ubuntu-$dist/$arch/linux
append priority=low vga=normal initrd=ubuntu-$dist/$arch/initrd.gz --
LABEL rescue
kernel ubuntu-$dist/$arch/linux
append vga=normal initrd=ubuntu-$dist/$arch/initrd.gz rescue/enable=true --
LABEL auto
kernel ubuntu-$dist/$arch/linux
append auto=true priority=critical vga=normal initrd=ubuntu-$dist/$arch/initrd.gz --
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# fin UBUNTU #
###########################
###########################
# Mandriva #
###########################
for dist in $MANDRIVA_DISTS; do
for arch in $MANDRIVA_ARCHS; do
mkdir -p $TFTPROOT/mandriva-$dist/$arch/
wget -c $MANDRIVA_FTP/$dist/$arch/isolinux/alt0/all.rdz -O $TFTPROOT/mandriva-$dist/$arch/initrd.img
wget -c $MANDRIVA_FTP/$dist/$arch/isolinux/alt0/vmlinuz -O $TFTPROOT/mandriva-$dist/$arch/vmlinuz
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin mandriva
menu title Mandriva
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $MANDRIVA_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin mandriva-$dist
menu title Mandriva $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $MANDRIVA_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin mandriva-$dist-$arch
menu title Mandriva $dist $arch
label mainmenu
menu label ^Back..
menu exit
label install
menu label ^Install
kernel mandriva-$dist/$arch/vmlinuz
append initrd=mandriva-$dist/$arch/initrd.img ks=http://$OWN_IP/pxe/ks.mandriva-$dist-$arch.cfg ramdisk_size=8192
menu end
EOF
cat > $KSROOT/ks.mandriva-$dist-$arch.cfg << EOF
install
url --url $MANDRIVA_FTP/$dist/$arch/
keyboard fr-latin1
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# fin Mandriva #
###########################
###########################
# CentOS #
###########################
for dist in $CENTOS_DISTS; do
for arch in $CENTOS_ARCHS; do
mkdir -p $TFTPROOT/centos-$dist/$arch/
wget -c $CENTOS_FTP/$dist/os/$arch/images/pxeboot/initrd.img -O $TFTPROOT/centos-$dist/$arch/initrd.img
wget -c $CENTOS_FTP/$dist/os/$arch/images/pxeboot/vmlinuz -O $TFTPROOT/centos-$dist/$arch/vmlinuz
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin centos
menu title CentOS
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $CENTOS_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin centos-$dist
menu title CentOS $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $CENTOS_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin centos-$dist-$arch
menu title CentOS $dist $arch
label mainmenu
menu label ^Back..
menu exit
label install
menu label ^Install
kernel centos-$dist/$arch/vmlinuz
append ksdevice=eth0 console=tty0 initrd=centos-$dist/$arch/initrd.img ks=http://$OWN_IP/pxe/ks.centos-$dist-$arch.cfg ramdisk_size=8192
menu end
EOF
cat > $KSROOT/ks.centos-$dist-$arch.cfg << EOF
install
url --url $CENTOS_FTP/$dist/os/$arch/
lang en_US.UTF-8
langsupport --default en_US.UTF-8 en_US.UTF-8 fr_FR.UTF-8
keyboard fr-latin1
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# fin CentOS #
###########################
###########################
# Fedora #
###########################
for dist in $FEDORA_DISTS; do
for arch in $FEDORA_ARCHS; do
mkdir -p $TFTPROOT/fedora-$dist/$arch/
wget -c $FEDORA_FTP/releases/$dist/Fedora/$arch/os/images/pxeboot/initrd.img -O $TFTPROOT/fedora-$dist/$arch/initrd.img ||\
wget -c $FEDORA_FTP/development/$dist/$arch/os/images/pxeboot/initrd.img -O $TFTPROOT/fedora-$dist/$arch/initrd.img
wget -c $FEDORA_FTP/releases/$dist/Fedora/$arch/os/images/pxeboot/vmlinuz -O $TFTPROOT/fedora-$dist/$arch/vmlinuz ||\
wget -c $FEDORA_FTP/development/$dist/$arch/os/images/pxeboot/vmlinuz -O $TFTPROOT/fedora-$dist/$arch/vmlinuz
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin fedora
menu title Fedora
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $FEDORA_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin fedora-$dist
menu title Fedora $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $FEDORA_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin fedora-$dist-$arch
menu title Fedora $dist $arch
label mainmenu
menu label ^Back..
menu exit
label install
menu label ^Install
kernel fedora-$dist/$arch/vmlinuz
append ksdevice=eth0 console=tty0 initrd=fedora-$dist/$arch/initrd.img ks=http://$OWN_IP/pxe/ks.fedora-$dist-$arch.cfg ramdisk_size=8192
menu end
EOF
cat > $KSROOT/ks.fedora-$dist-$arch.cfg << EOF
install
url --url $FEDORA_FTP/releases/$dist/Fedora/$arch/os/
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# Fin Fedora #
###########################
###########################
# openSUSE #
###########################
for dist in $OPENSUSE_DISTS; do
mkdir -p $TFTPROOT/opensuse-$dist/$arch/
wget $OPENSUSE_FTP/$dist/repo/oss/boot/$arch/loader/linux -O $TFTPROOT/opensuse-$dist/$arch/linux
wget $OPENSUSE_FTP/$dist/repo/oss/boot/$arch/loader/initrd -O $TFTPROOT/opensuse-$dist/$arch/initrd
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin opensuse
menu title Opensuse
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $OPENSUSE_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin opensuse-$dist
menu title openSUSE $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $OPENSUSE_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin opensuse-$dist-$arch
menu title Opensuse $dist $arch
label mainmenu
menu label ^Back..
menu exit
label install
menu label ^Install
kernel opensuse-$dist/$arch/linux
append initrd=opensuse-$dist/$arch/initrd splash=silent vga=0x314 showopts install=http://download.opensuse.org/factory/repo/oss/ --
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# Fin openSUSE #
###########################
###########################
# FreeBSD #
###########################
for dist in $FREEBSD_DISTS; do
for arch in $FREEBSD_ARCHS; do
mkdir -p $TFTPROOT/freebsd-$dist/$arch/
wget -c $FREEBSD_FTP/releases/$arch/ISO-IMAGES/$dist/FreeBSD-$dist-RELEASE-$arch-bootonly.iso -O $TFTPROOT/freebsd-$dist/$arch/bootonly.iso
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin freebsd
menu title FreeBSD
label mainmenu
menu label ^Back..
menu exit
EOF
for dist in $FREEBSD_DISTS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin freebsd-$dist
menu title FreeBSD $dist
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $FREEBSD_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin freebsd-$dist-$arch
menu title FreeBSD $dist $arch
label mainmenu
menu label ^Back..
menu exit
label install
menu label ^Install
linux memdisk
initrd freebsd-$dist/$arch/bootonly.iso
append iso
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
###########################
# Fin FreeBSD #
###########################
###########################
# NetBSD #
###########################
# Le fichier de boot est le même pour les deux architectures
# On prend toujours le plus récent
mkdir -p $TFTPROOT/netbsd/
dist=4.0.1
wget -c $NETBSD_FTP/NetBSD-$dist/amd64/installation/misc/pxeboot_ia32.bin -O $TFTPROOT/netbsd/pxeboot_ia32.bin
# Hack moche : la version 5.0.1 ne supporte pas le netboot (le kernel freeze)
#for dist in $NETBSD_DISTS; do
for arch in $NETBSD_ARCHS; do
wget -c $NETBSD_FTP/NetBSD-$dist/$arch/binary/kernel/netbsd-INSTALL.gz -O $TFTPROOT/netbsd/netbsd-$dist-$arch.gz
done
#done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
label NetBSD
kernel netbsd/pxeboot_ia32.bin
EOF
###########################
# Fin NetBSD #
###########################
###########################
# OpenBSD #
###########################
mkdir -p $TFTPROOT/openbsd
for dist in $OPENBSD_DIST; do
for arch in $OPENBSD_ARCHS; do
# On ne garde que le dernier fichier de boot
wget -c $OPENBSD_FTP/$dist/$arch/pxeboot -O $TFTPROOT/openbsd/openbsd.$arch.0
wget -c $OPENBSD_FTP/$dist/$arch/bsd.rd -O $TFTPROOT/openbsd/bsd.rd-$dist.$arch
done
done
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu begin openbsd
menu title OpenBSD
label mainmenu
menu label ^Back..
menu exit
EOF
for arch in $OPENBSD_ARCHS; do
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
label OpenBSD $arch
kernel openbsd/pxeboot.$arch.0
EOF
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
menu end
EOF
done
###########################
# Fin OpenBSD #
###########################
#On redémarre de tftp
/etc/init.d/tftpd-hpa restart
echo "Fini"