[pxeboot] divers
Ignore-this: d020ab72975a87382f8c6502b9c42df9 darcs-hash:20121117004329-3a55a-432d36760685c60888ad7acf80aa6cf1c9b1b67b.gz
This commit is contained in:
parent
9a5b4e2d57
commit
a903315e3d
1 changed files with 55 additions and 33 deletions
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash -x
|
#!/bin/bash -e
|
||||||
#
|
#
|
||||||
# pxeboot.sh: création d'un répertoire TFTP de boot par PXE
|
# pxeboot.sh: création d'un répertoire TFTP de boot par PXE
|
||||||
# Copyright (C) 2008, Nicolas Dandrimont <Nicolas.Dandrimont@crans.org>
|
# Copyright (C) 2008, Nicolas Dandrimont <Nicolas.Dandrimont@crans.org>
|
||||||
|
@ -13,12 +13,12 @@ TMPDIR="/var/tmp/build-netboot"
|
||||||
ISODIR="/var/lib/tftpboot-g"
|
ISODIR="/var/lib/tftpboot-g"
|
||||||
[[ $1 == "" ]] && echo "Il faut spécifier l'IP" && exit 1
|
[[ $1 == "" ]] && echo "Il faut spécifier l'IP" && exit 1
|
||||||
OWN_IP="$1"
|
OWN_IP="$1"
|
||||||
|
/etc/init.d/nfs-kernel-server stop
|
||||||
umount /var/lib/tftpboot/livecd/ubuntu/*
|
umount /var/lib/tftpboot/livecd/ubuntu/* || true;
|
||||||
rm -rf $TFTPROOT || exit 1
|
rm -rf $TFTPROOT || exit 1
|
||||||
|
|
||||||
# Définitions spécifiques au Sys Rescue CD
|
# Définitions spécifiques au Sys Rescue CD
|
||||||
SYSRCCD_ARCHS="i386 amd64"
|
SYSRCCD_ARCHS=""
|
||||||
SYSRCCD_FTP="http://ftp.crans.org/pub/distributions/linux/systemrescuecd"
|
SYSRCCD_FTP="http://ftp.crans.org/pub/distributions/linux/systemrescuecd"
|
||||||
|
|
||||||
# Définitions spécifiques à Debian
|
# Définitions spécifiques à Debian
|
||||||
|
@ -32,63 +32,65 @@ DEBIAN_BACKPORT_ARCHS="i386 amd64"
|
||||||
DEBIAN_BACKPORT_FTP="ftp://cdimage.debian.org/cdimage/unofficial/backports/"
|
DEBIAN_BACKPORT_FTP="ftp://cdimage.debian.org/cdimage/unofficial/backports/"
|
||||||
|
|
||||||
# Définitions spécifiques à Ubuntu
|
# Définitions spécifiques à Ubuntu
|
||||||
UBUNTU_DISTS="maverick natty oneiric precise"
|
UBUNTU_DISTS="maverick natty oneiric precise quantal"
|
||||||
UBUNTU_ARCHS="i386 amd64"
|
UBUNTU_ARCHS="i386 amd64"
|
||||||
UBUNTU_FTP="ftp://ftp.crans.org/ubuntu/dists"
|
UBUNTU_FTP="ftp://ftp.crans.org/ubuntu/dists"
|
||||||
|
|
||||||
UBUNTU_LIVE="10.10 11.04 11.10 12.04 12.10"
|
UBUNTU_LIVE="11.10 12.04 12.10"
|
||||||
# il faut modifier le nfs et mettre les images dans $ISODIR/ubuntu/
|
# il faut modifier le nfs et mettre les images dans $ISODIR/ubuntu/
|
||||||
# puis les monter et partager dans $TFTPROOT/livecd/ubuntu/$dist-$arch
|
# puis les monter et partager dans $TFTPROOT/livecd/ubuntu/$dist-$arch
|
||||||
|
UBUNTU_LIVE_TYPE="ubuntu xubuntu kubuntu"
|
||||||
UBUNTU_LIVE_ARCHS="i386 amd64"
|
UBUNTU_LIVE_ARCHS="i386 amd64"
|
||||||
|
|
||||||
# Définitions spécifiques à Mandriva
|
# Définitions spécifiques à Mandriva
|
||||||
MANDRIVA_DISTS="2010.1 2010.2"
|
MANDRIVA_DISTS=""
|
||||||
MANDRIVA_ARCHS="i586 x86_64"
|
MANDRIVA_ARCHS="i586 x86_64"
|
||||||
MANDRIVA_FTP="ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official"
|
MANDRIVA_FTP="ftp://ftp.free.fr/mirrors/ftp.mandriva.com/MandrivaLinux/official"
|
||||||
|
|
||||||
# Définitions spécifiques à CentOS
|
# Définitions spécifiques à CentOS
|
||||||
CENTOS_DISTS="5.6"
|
CENTOS_DISTS="5.8 6.3"
|
||||||
CENTOS_ARCHS="i386 x86_64"
|
CENTOS_ARCHS="i386 x86_64"
|
||||||
CENTOS_FTP="ftp://mirror.in2p3.fr/pub/linux/CentOS"
|
CENTOS_FTP="ftp://mirror.in2p3.fr/pub/linux/CentOS"
|
||||||
|
|
||||||
# Définitions spécifiques à Fedora
|
# Définitions spécifiques à Fedora
|
||||||
FEDORA_DISTS="14 15 16 17"
|
FEDORA_DISTS="15 16 17"
|
||||||
FEDORA_ARCHS="i386 x86_64"
|
FEDORA_ARCHS="i386 x86_64"
|
||||||
FEDORA_FTP="ftp://mirror.ovh.net/download.fedora.redhat.com/linux"
|
FEDORA_FTP="ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/"
|
||||||
|
|
||||||
OPENSUSE_DISTS="11.4"
|
OPENSUSE_DISTS="11.4"
|
||||||
OPENSUSE_ARCHS="i386 x86_64"
|
OPENSUSE_ARCHS="i386 x86_64"
|
||||||
OPENSUSE_FTP="ftp://ftp.free.fr/mirrors/ftp.opensuse.org/opensuse/distribution/"
|
OPENSUSE_FTP="ftp://ftp.free.fr/mirrors/ftp.opensuse.org/opensuse/distribution/"
|
||||||
|
|
||||||
# Définitions spécifiques à FreeBSD
|
# Définitions spécifiques à FreeBSD
|
||||||
FREEBSD_DISTS="7.4 8.2"
|
FREEBSD_DISTS="8.2 8.3"
|
||||||
FREEBSD_ARCHS="i386 amd64"
|
FREEBSD_ARCHS="i386 amd64"
|
||||||
FREEBSD_FTP="ftp://ftp.fr.freebsd.org/pub/FreeBSD/"
|
FREEBSD_FTP="ftp://ftp.fr.freebsd.org/pub/FreeBSD/"
|
||||||
|
|
||||||
# Définition spécifiques à NetBSD
|
# Définition spécifiques à NetBSD
|
||||||
NETBSD_DIST="5.1"
|
NETBSD_DIST="5.1 6.0"
|
||||||
NETBSD_ARCHS="i386 amd64"
|
NETBSD_ARCHS="i386 amd64"
|
||||||
NETBSD_FTP="ftp://iso.fr.netbsd.org/pub/NetBSD"
|
NETBSD_FTP="ftp://iso.fr.netbsd.org/pub/NetBSD"
|
||||||
|
|
||||||
# Définitions spécifiques à OpenBSD
|
# Définitions spécifiques à OpenBSD
|
||||||
OPENBSD_DIST="4.9"
|
OPENBSD_DIST="5.1 5.2"
|
||||||
OPENBSD_ARCHS="i386 amd64"
|
OPENBSD_ARCHS="i386 amd64"
|
||||||
OPENBSD_FTP="ftp://ftp.crans.org/mirror/OpenBSD"
|
OPENBSD_FTP="ftp://ftp.crans.org/pub/OpenBSD"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
####################################
|
####################################
|
||||||
# Vérifications
|
# Vérifications
|
||||||
####################################
|
####################################
|
||||||
for dist in $UBUNTU_LIVE; do
|
for type in $UBUNTU_LIVE_TYPE; do
|
||||||
for arch in $UBUNTU_LIVE_ARCHS; do
|
for dist in $UBUNTU_LIVE; do
|
||||||
if ! test -e $ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso
|
for arch in $UBUNTU_LIVE_ARCHS; do
|
||||||
then echo "$ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso n'existe pas" && exit 1
|
if ! test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso
|
||||||
fi
|
then echo "$ISODIR/ubuntu/$type-$dist-desktop-$arch.iso n'existe pas" && sleep 5;
|
||||||
done
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
mkdir -vp $TMPDIR
|
mkdir -vp $TMPDIR
|
||||||
#mkdir -vp $TFTPROOT
|
#mkdir -vp $TFTPROOT
|
||||||
#mkdir -vp $TFTPROOT/boot-screens
|
#mkdir -vp $TFTPROOT/boot-screens
|
||||||
|
@ -141,6 +143,7 @@ for arch in $SYSRCCD_ARCHS; do
|
||||||
wget -c $SYSRCCD_FTP/image/isolinux/rescue`echo $arch | sed -n 's/amd64/64/p'` -O $TFTPROOT/sysrescuecd/$arch/rescue
|
wget -c $SYSRCCD_FTP/image/isolinux/rescue`echo $arch | sed -n 's/amd64/64/p'` -O $TFTPROOT/sysrescuecd/$arch/rescue
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [[ $SYSRCCD_ARCHS != "" ]]; then
|
||||||
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
menu begin sysrescuecd
|
menu begin sysrescuecd
|
||||||
menu title Sysrescue Cd
|
menu title Sysrescue Cd
|
||||||
|
@ -160,6 +163,7 @@ done
|
||||||
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
menu end
|
menu end
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
###########################
|
###########################
|
||||||
# Fin sysrescuecd #
|
# Fin sysrescuecd #
|
||||||
###########################
|
###########################
|
||||||
|
@ -185,7 +189,7 @@ for dist in $DEBIAN_DISTS; do
|
||||||
cp $TMPDIR/netboot-debian-gtk-$dist-$arch/debian-installer/$arch/linux $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
|
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/
|
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/
|
tar zxf $TMPDIR/netboot-debian-kfreebsd-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/
|
||||||
mkdir -p $TFTPROOT/debian-$dist/kfreebsd-$arch/
|
mkdir -p $TFTPROOT/debian-$dist/kfreebsd-$arch/
|
||||||
cp -r $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/* $TFTPROOT/debian-$dist/kfreebsd-$arch/
|
cp -r $TMPDIR/netboot-debian-$dist-kfreebsd-$arch/* $TFTPROOT/debian-$dist/kfreebsd-$arch/
|
||||||
done
|
done
|
||||||
|
@ -288,10 +292,10 @@ EOF
|
||||||
# DEBIAN BACKPORT #
|
# DEBIAN BACKPORT #
|
||||||
###########################
|
###########################
|
||||||
|
|
||||||
rm -r $TMPDIR/netboot-debian-backport-*
|
#rm -r $TMPDIR/netboot-debian-backport-* || true;
|
||||||
for dist in $DEBIAN_BACKPORT_DISTS; do
|
for dist in $DEBIAN_BACKPORT_DISTS; do
|
||||||
for arch in $DEBIAN_BACKPORT_ARCHS; 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}'`
|
url=`wget $DEBIAN_BACKPORT_FTP/$dist/ -O- | grep netboot | grep $arch | sort | tail -n 1 | sed 's/">/ /g;s/href="//;s@</a>@@' | awk '{print $6}'`
|
||||||
wget -c $url -O $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz
|
wget -c $url -O $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz
|
||||||
mkdir -p $TMPDIR/netboot-debian-backport-$dist-$arch/
|
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/
|
tar zxf $TMPDIR/netboot-debian-backport-$dist-$arch.tar.gz -C $TMPDIR/netboot-debian-backport-$dist-$arch/
|
||||||
|
@ -320,7 +324,7 @@ EOF
|
||||||
for arch in $DEBIAN_BACKPORT_ARCHS; do
|
for arch in $DEBIAN_BACKPORT_ARCHS; do
|
||||||
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
menu begin debian-backport-$dist-$arch
|
menu begin debian-backport-$dist-$arch
|
||||||
menu title Debian Backport $dist $arch
|
menu $arch
|
||||||
label mainmenu
|
label mainmenu
|
||||||
menu label ^Back..
|
menu label ^Back..
|
||||||
menu exit
|
menu exit
|
||||||
|
@ -369,10 +373,14 @@ for dist in $UBUNTU_DISTS; do
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
for dist in $UBUNTU_LIVE; do
|
for type in $UBUNTU_LIVE_TYPE; do
|
||||||
for arch in $UBUNTU_LIVE_ARCHS; do
|
for dist in $UBUNTU_LIVE; do
|
||||||
mkdir -p $TFTPROOT/livecd/ubuntu/$dist-$arch
|
for arch in $UBUNTU_LIVE_ARCHS; do
|
||||||
mount -o loop $ISODIR/ubuntu/ubuntu-$dist-desktop-$arch.iso $TFTPROOT/livecd/ubuntu/$dist-$arch
|
if test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso; then
|
||||||
|
mkdir -p $TFTPROOT/livecd/ubuntu/$type-$dist-$arch
|
||||||
|
mount -o loop $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso $TFTPROOT/livecd/ubuntu/$type-$dist-$arch
|
||||||
|
fi
|
||||||
|
done
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -383,16 +391,30 @@ menu begin ubuntu-livecd
|
||||||
menu label ^Back..
|
menu label ^Back..
|
||||||
menu exit
|
menu exit
|
||||||
EOF
|
EOF
|
||||||
|
for type in $UBUNTU_LIVE_TYPE; do
|
||||||
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
|
menu begin ubuntu-livecd-$type
|
||||||
|
menu title $type
|
||||||
|
label mainmenu
|
||||||
|
menu label ^Back..
|
||||||
|
menu exit
|
||||||
|
EOF
|
||||||
for dist in $UBUNTU_LIVE; do
|
for dist in $UBUNTU_LIVE; do
|
||||||
for arch in $UBUNTU_LIVE_ARCHS; do
|
for arch in $UBUNTU_LIVE_ARCHS; do
|
||||||
|
if test -e $ISODIR/ubuntu/$type-$dist-desktop-$arch.iso; then
|
||||||
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
LABEL Ubuntu Livecd $dist $arch
|
LABEL $type Livecd $dist $arch
|
||||||
KERNEL /livecd/ubuntu/$dist-$arch/casper/vmlinuz
|
KERNEL /livecd/ubuntu/$type-$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 --
|
APPEND root=/dev/nfs boot=casper netboot=nfs nfsroot=$OWN_IP:$TFTPROOT/livecd/ubuntu/$type-$dist-$arch initrd=livecd/ubuntu/$type-$dist-$arch/casper/initrd.lz --
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
|
menu end
|
||||||
|
EOF
|
||||||
|
done
|
||||||
|
|
||||||
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
cat >> $TFTPROOT/boot-screens/menu.cfg << EOF
|
||||||
menu end
|
menu end
|
||||||
|
@ -824,5 +846,5 @@ done
|
||||||
|
|
||||||
#On redémarre de tftp
|
#On redémarre de tftp
|
||||||
/etc/init.d/tftpd-hpa restart
|
/etc/init.d/tftpd-hpa restart
|
||||||
|
/etc/init.d/nfs-kernel-server start
|
||||||
echo "Fini"
|
echo "Fini"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue