From 9022007377b8625f7b5f0671c7154b70cae791cb Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Thu, 15 Nov 2012 14:24:20 +0100 Subject: [PATCH] =?UTF-8?q?[pxeboot]=20On=20ajoute=20le=20script=20de=20g?= =?UTF-8?q?=C3=A9n=C3=A9ration=20du=20boot=20on=20lan=20=C3=A0=20/usr/scri?= =?UTF-8?q?pt/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ignore-this: b017a302be49db1248c7e325770d9d00 darcs-hash:20121115132420-3a55a-efaea02b5b7e041443701ad82e01a3bc6c38eb62.gz --- gestion/gen_confs/pxeboot | 828 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 828 insertions(+) create mode 100755 gestion/gen_confs/pxeboot diff --git a/gestion/gen_confs/pxeboot b/gestion/gen_confs/pxeboot new file mode 100755 index 00000000..27f68ef8 --- /dev/null +++ b/gestion/gen_confs/pxeboot @@ -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 +# +# 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 <> $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"