first commit
This commit is contained in:
commit
6fc423d658
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export WORKDIR="."
|
||||||
|
export MKLIVE=$(dirname $0)
|
||||||
|
|
||||||
|
[ -n "$1" ] || exit 0
|
||||||
|
SCRIPT=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
[ -x "${MKLIVE}/scripts/$SCRIPT.sh" ] && ${MKLIVE}/scripts/$SCRIPT.sh $@
|
||||||
|
|
|
@ -0,0 +1,65 @@
|
||||||
|
|
||||||
|
|
||||||
|
#Bootstrap settings
|
||||||
|
ARCH=amd64
|
||||||
|
DIST_RELEASE=bionic
|
||||||
|
DIST_MIRROR="http://de.archive.ubuntu.com/ubuntu/"
|
||||||
|
DIST_VARIANT="minbase"
|
||||||
|
|
||||||
|
KERNEL_PACKAGE="linux-image-generic"
|
||||||
|
|
||||||
|
PACKAGES="iproute2 isc-dhcp-client"
|
||||||
|
|
||||||
|
LIVE_ROOTPW="foobar23"
|
||||||
|
LIVE_HOSTNAME="live"
|
||||||
|
LIVE_NAME="Test Live System"
|
||||||
|
|
||||||
|
|
||||||
|
#Source pathes
|
||||||
|
SYSLINUX_MODULESDIR="/usr/lib/syslinux/modules/bios/"
|
||||||
|
|
||||||
|
|
||||||
|
#working directoies
|
||||||
|
OUTDIR="./out"
|
||||||
|
STAGEDIR="./stage"
|
||||||
|
CHROOT="./chroot"
|
||||||
|
|
||||||
|
|
||||||
|
#iso filename - gets extended by .iso
|
||||||
|
ISO_FILENAME="live"
|
||||||
|
|
||||||
|
#Include Memtest
|
||||||
|
ISO_INCLUDE_MEMTEST="true"
|
||||||
|
|
||||||
|
#Include Hardware detetion tool
|
||||||
|
ISO_INCLUDE_HDT="true"
|
||||||
|
|
||||||
|
#Include an ubuntu installer into the ISO?
|
||||||
|
ISO_INCLUDE_UBUNTU_INSTALLER="true"
|
||||||
|
|
||||||
|
#Include a debian installer into the ISO?
|
||||||
|
ISO_INCLUDE_DEBIAN_INSTALLER="true"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Include Memtest
|
||||||
|
PXE_INCLUDE_MEMTEST="true"
|
||||||
|
|
||||||
|
#Include Hardware detetion tool
|
||||||
|
PXE_INCLUDE_HDT="true"
|
||||||
|
|
||||||
|
#Include an ubuntu installer into the ISO?
|
||||||
|
PXE_INCLUDE_UBUNTU_INSTALLER="true"
|
||||||
|
|
||||||
|
#Include a debian installer into the ISO?
|
||||||
|
PXE_INCLUDE_DEBIAN_INSTALLER="true"
|
||||||
|
|
||||||
|
#URL to the PXE dir via tftp
|
||||||
|
PXE_FETCH_TFTP="tftp://192.168.122.223/"
|
||||||
|
|
||||||
|
#
|
||||||
|
SERIAL_PORT=0
|
||||||
|
#
|
||||||
|
SERIAL_SPEED=115200
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
|
||||||
|
echo "Build live"
|
||||||
|
|
||||||
|
CHROOT=${WORKDIR}/chroot
|
||||||
|
|
||||||
|
startstage bootstrap
|
||||||
|
#bootstrap basic system
|
||||||
|
[ -d $CHROOT ] || debootstrap --components=main,restricted,universe,multiverse --variant=$DIST_VARIANT --arch=$ARCH $DIST_RELEASE $CHROOT $DIST_MIRROR
|
||||||
|
|
||||||
|
#prepair chroot
|
||||||
|
mount -t proc proc $CHROOT/proc/
|
||||||
|
mount -t sysfs sys $CHROOT/sys/
|
||||||
|
mount -o bind /dev $CHROOT/dev/
|
||||||
|
|
||||||
|
#install locales
|
||||||
|
if [ ! -e $STAGEDIR/_locales ]; then
|
||||||
|
chroot $CHROOT apt -y install locales
|
||||||
|
echo "de_DE.UTF-8 UTF-8" >> $CHROOT/etc/locale.gen
|
||||||
|
echo "en_US.UTF-8 UTF-8" >> $CHROOT/etc/locale.gen
|
||||||
|
chroot $CHROOT locale-gen
|
||||||
|
echo "done" > $STAGEDIR/_locales
|
||||||
|
fi
|
||||||
|
|
||||||
|
#install systemd
|
||||||
|
chroot $CHROOT apt -y install systemd
|
||||||
|
|
||||||
|
#install live-boot
|
||||||
|
chroot $CHROOT apt-get -y install live-boot
|
||||||
|
|
||||||
|
#install additional packages
|
||||||
|
if [ -n "${PACKAGES}" ]; then
|
||||||
|
chroot $CHROOT apt-get -y install ${PACKAGES}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#set the rootpw
|
||||||
|
chpasswd -R $(readlink -f $CHROOT) <<< "root:${LIVE_ROOTPW}"
|
||||||
|
|
||||||
|
#change to a full busybox - for tftp support
|
||||||
|
sed -i -r 's/=.+(\/bin\/busybox)/=\1/' chroot/usr/share/initramfs-tools/hooks/zz-busybox-initramfs
|
||||||
|
|
||||||
|
#install kernel
|
||||||
|
chroot $CHROOT apt -y -o "APT::Install-Recommends=false" install ${KERNEL_PACKAGE}
|
||||||
|
|
||||||
|
#clean chroot
|
||||||
|
chroot $CHROOT apt-get clean
|
||||||
|
umount $CHROOT/proc/
|
||||||
|
umount $CHROOT/sys/
|
||||||
|
umount $CHROOT/dev/
|
||||||
|
|
||||||
|
#final changes
|
||||||
|
echo "${LIVE_HOSTNAME}" > $CHROOT/etc/hostname
|
||||||
|
|
||||||
|
endstage bootstrap
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
|
||||||
|
[ -z "$1" ] && err "Nothing to clean"
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
bootstrap)
|
||||||
|
echo "Cleaning bootstrap stage"
|
||||||
|
rm -r "${WORKDIR}/chroot"
|
||||||
|
rm ${WORKDIR}/stage/_bootstrap
|
||||||
|
;;
|
||||||
|
installer)
|
||||||
|
echo "cleaning installer stage"
|
||||||
|
rm -r "${WORKDIR}/INSTALLER"
|
||||||
|
rm ${WORKDIR}/stage/_installer
|
||||||
|
;;
|
||||||
|
pxe)
|
||||||
|
echo "cleaning pxe stage"
|
||||||
|
rm -r "${WORKDIR}/PXE"
|
||||||
|
rm ${WORKDIR}/stage/_pxe
|
||||||
|
;;
|
||||||
|
live)
|
||||||
|
echo "cleaning live stage"
|
||||||
|
rm -r "${WORKDIR}/LIVE"
|
||||||
|
rm ${WORKDIR}/stage/_live
|
||||||
|
;;
|
||||||
|
iso)
|
||||||
|
echo "Cleaning iso stage"
|
||||||
|
rm -r "${WORKDIR}/ISO"
|
||||||
|
rm ${WORKDIR}/stage/_iso
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "unkown $1 stage"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
MEMTEST_BIN="/boot/memtest86+.bin"
|
||||||
|
UBUNTU_INSTALL_NETBOOT="http://de.archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/netboot.tar.gz"
|
||||||
|
DEBIAN_INSTALL_NETBOOT="http://ftp.nl.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/netboot.tar.gz"
|
|
@ -0,0 +1,22 @@
|
||||||
|
function requiredir {
|
||||||
|
[ -n "$1" ] || exit 1
|
||||||
|
[ -e $1 ] || mkdir $1
|
||||||
|
}
|
||||||
|
|
||||||
|
function err {
|
||||||
|
echo $1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkstage {
|
||||||
|
[ -e ${WORKDIR}/stage/_$1 ] || return 1
|
||||||
|
[ "$(cat $WORKDIR/stage/_$1)" != "done" ] && return 2
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function startstage {
|
||||||
|
echo -n "started" > ${WORKDIR}/stage/_$1
|
||||||
|
}
|
||||||
|
function endstage {
|
||||||
|
echo -n "done" > ${WORKDIR}/stage/_$1
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source $(dirname $0)/defaults.conf
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
|
||||||
|
echo "Preparing Installer"
|
||||||
|
|
||||||
|
startstage installer
|
||||||
|
|
||||||
|
requiredir ${WORKDIR}/INSTALLER
|
||||||
|
|
||||||
|
installerdists=""
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_UBUNTU_INSTALLER" == "true" ] || [ "$PXE_INCLUDE_UBUNTU_INSTALLER" == "true" ]; then
|
||||||
|
installerdists="${installerdists} ubuntu"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_DEBIAN_INSTALLER" == "true" ] || [ "$PXE_INCLUDE_DEBIAN_INSTALLER" == "true" ]; then
|
||||||
|
installerdists="${installerdists} debian"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
for dist in $installerdists
|
||||||
|
do
|
||||||
|
URLVAR="${dist^^}_INSTALL_NETBOOT"
|
||||||
|
[ -z "${!URLVAR}" ] && continue;
|
||||||
|
[ -e ${WORKDIR}/INSTALLER/${dist}_netboot.tar.gz ] || wget ${!URLVAR} -O ${WORKDIR}/INSTALLER/${dist}_netboot.tar.gz
|
||||||
|
tar -C ${WORKDIR}/INSTALLER -xzf ${WORKDIR}/INSTALLER/${dist}_netboot.tar.gz ./$dist-installer/amd64/linux ./${dist}-installer/amd64/initrd.gz
|
||||||
|
tar -C ${WORKDIR}/INSTALLER --transform "s/txt/${dist}/" --strip 4 -xzf ${WORKDIR}/INSTALLER/${dist}_netboot.tar.gz ./${dist}-installer/amd64/boot-screens/txt.cfg
|
||||||
|
done
|
||||||
|
|
||||||
|
endstage installer
|
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source $(dirname $0)/defaults.conf
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
source $(dirname $0)/menufunction.sh
|
||||||
|
|
||||||
|
echo "Starting ISO creation"
|
||||||
|
|
||||||
|
ISOLINUX_MODULES="ldlinux.c32 libmenu.c32 menu.c32"
|
||||||
|
ISOLINUX_BIN="/usr/lib/ISOLINUX/isolinux.bin"
|
||||||
|
|
||||||
|
checkstage live || err "Previous stage (live) was not finished"
|
||||||
|
|
||||||
|
startstage iso
|
||||||
|
|
||||||
|
ISODIR=${WORKDIR}/ISO
|
||||||
|
requiredir $ISODIR
|
||||||
|
requiredir $ISODIR/isolinux
|
||||||
|
[ -L $ISODIR/live ] || ln -s ../LIVE $ISODIR/live
|
||||||
|
|
||||||
|
#copy isolinux.bin
|
||||||
|
cp ${ISOLINUX_BIN} $ISODIR/isolinux/
|
||||||
|
|
||||||
|
#create isolinux.conf
|
||||||
|
menuhead > $ISODIR/isolinux/isolinux.cfg
|
||||||
|
menulivehead >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
menulive >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_UBUNTU_INSTALLER" == "true" ] || [ "$ISO_INCLUDE_DEBIAN_INSTALLER" == "true" ]; then
|
||||||
|
menuinstallerhead >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_UBUNTU_INSTALLER" == "true" ]; then
|
||||||
|
menuinstaller ubuntu >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
[ -L $ISODIR/ubuntu-installer ] || ln -s ../INSTALLER/ubuntu-installer $ISODIR/ubuntu-installer
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_HDT" == "true" ] || [ "$ISO_INCLUDE_MEMTEST" == "true" ]; then
|
||||||
|
menuhwhead >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_HDT" == "true" ]; then
|
||||||
|
ISOLINUX_MODULES="${ISOLINUX_MODULES} hdt.c32 libutil.c32 libgpl.c32 libcom32.c32"
|
||||||
|
menuhwhdt >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
[ -e /usr/share/misc/pci.ids ] && cp /usr/share/misc/pci.ids $ISODIR/isolinux/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$ISO_INCLUDE_MEMTEST" == "true" ]; then
|
||||||
|
cp $MEMTEST_BIN $ISODIR/memtest
|
||||||
|
menuhwmemtest >> $ISODIR/isolinux/isolinux.cfg
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#copy all modules
|
||||||
|
for m in $ISOLINUX_MODULES
|
||||||
|
do
|
||||||
|
cp ${SYSLINUX_MODULESDIR}/$m $ISODIR/isolinux/
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#create isofile
|
||||||
|
mkisofs -f -boot-info-table -boot-load-size 4 -no-emul-boot -o ${ISO_FILENAME}.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -l -R -J $ISODIR
|
||||||
|
|
||||||
|
endstage iso
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
|
||||||
|
echo "Build live"
|
||||||
|
|
||||||
|
startstage live
|
||||||
|
|
||||||
|
requiredir ${WORKDIR}/LIVE
|
||||||
|
|
||||||
|
CHROOT=${WORKDIR}/chroot
|
||||||
|
|
||||||
|
#copy kernel and initrd
|
||||||
|
cp -L $CHROOT/initrd.img ${WORKDIR}/LIVE/
|
||||||
|
cp -L $CHROOT/vmlinuz ${WORKDIR}/LIVE/
|
||||||
|
|
||||||
|
#mksquashfs
|
||||||
|
[ -e ${WORKDIR}/LIVE/filesystem.squashfs ] && rm ${WORKDIR}/LIVE/filesystem.squashfs
|
||||||
|
mksquashfs $CHROOT ${WORKDIR}/LIVE/filesystem.squashfs
|
||||||
|
|
||||||
|
endstage live
|
||||||
|
|
|
@ -0,0 +1,189 @@
|
||||||
|
|
||||||
|
function menuhead {
|
||||||
|
|
||||||
|
if [ -n $SERIAL_PORT ]; then
|
||||||
|
SERIAL="SERIAL $SERIAL_PORT $SERIAL_SPEED"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
$SERIAL
|
||||||
|
UI menu.c32
|
||||||
|
|
||||||
|
prompt 0
|
||||||
|
menu title BOOT MENU
|
||||||
|
|
||||||
|
timeout 300
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menulivehead {
|
||||||
|
cat << EOF
|
||||||
|
label -
|
||||||
|
menu label Live Systems:
|
||||||
|
menu disable
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menulive {
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label live
|
||||||
|
menu label ${LIVE_NAME}
|
||||||
|
menu default
|
||||||
|
menu indent 1
|
||||||
|
kernel ../live/vmlinuz
|
||||||
|
append initrd=../live/initrd.img boot=live
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menulivepxe {
|
||||||
|
|
||||||
|
# FETCH
|
||||||
|
# ftp, http, tftp
|
||||||
|
num=$(echo "$PXE_FETCH_FTP $PXE_FETCH_HTTP $PXE_FETCH_TFTP" | wc -w)
|
||||||
|
|
||||||
|
if [ $num -gt 1 ];then
|
||||||
|
cat << EOF
|
||||||
|
menu begin live-menu
|
||||||
|
menu label ${LIVE_NAME}
|
||||||
|
menu indent 1
|
||||||
|
menu title ${LIVE_NAME} BOOT
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PXE_FETCH_FTP" ]; then
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label live
|
||||||
|
menu label ${LIVE_NAME} (fetch via ftp)
|
||||||
|
menu default
|
||||||
|
menu indent 1
|
||||||
|
kernel ../live/vmlinuz
|
||||||
|
append initrd=../live/initrd.img boot=live fetch=${PXE_FETCH_FTP}/live/filesystem.squashfs
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PXE_FETCH_HTTP" ]; then
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label live
|
||||||
|
menu label ${LIVE_NAME} (fetch via http)
|
||||||
|
menu default
|
||||||
|
menu indent 1
|
||||||
|
kernel ../live/vmlinuz
|
||||||
|
append initrd=../live/initrd.img boot=live fetch=${PXE_FETCH_HTTP}/live/filesystem.squashfs
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PXE_FETCH_TFTP" ]; then
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label live
|
||||||
|
menu label ${LIVE_NAME} (fetch via tftp)
|
||||||
|
menu default
|
||||||
|
menu indent 1
|
||||||
|
kernel ../live/vmlinuz
|
||||||
|
append initrd=../live/initrd.img boot=live fetch=${PXE_FETCH_TFTP}/live/filesystem.squashfs
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ $num -gt 1 ];then
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label exit-${dist}-installer
|
||||||
|
menu label Exit
|
||||||
|
menu exit
|
||||||
|
menu end
|
||||||
|
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function menuhwhead {
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label -
|
||||||
|
menu label Hardware tools:
|
||||||
|
menu disable
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuhwhdt {
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label hdt
|
||||||
|
menu label ^Hardware Detection Tool (HDT)
|
||||||
|
menu indent 1
|
||||||
|
kernel hdt.c32
|
||||||
|
text help
|
||||||
|
HDT displays low-level information about the systems hardware.
|
||||||
|
endtext
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuhwmemtest {
|
||||||
|
cat << EOF
|
||||||
|
label memtest86+
|
||||||
|
menu indent 1
|
||||||
|
menu label ^Memory Failure Detection (memtest86+)
|
||||||
|
kernel ../memtest
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuinstallerhead {
|
||||||
|
cat << EOF
|
||||||
|
label -
|
||||||
|
menu label Installer:
|
||||||
|
menu disable
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
function menuinstaller {
|
||||||
|
dist=$1
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
menu begin $dist-installer-menu
|
||||||
|
menu label ${dist^} Installer
|
||||||
|
menu indent 1
|
||||||
|
menu title ${dist^^} INSTALLER
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sed -r -e "s/(default .*)//g" \
|
||||||
|
-e "s/(label) ([a-z]+)/\1 \2-${dist}/g" \
|
||||||
|
-e "s/(${dist}-installer)/..\/\1/g" \
|
||||||
|
$WORKDIR/INSTALLER/${dist}.cfg
|
||||||
|
|
||||||
|
if [ -n "$SERIAL_PORT" ]; then
|
||||||
|
sed -r -e "s/(default .*)//g" \
|
||||||
|
-e "s/(label) ([a-z]+)/\1 \2-${dist}-serial/g" \
|
||||||
|
-e "s/(menu label .*)/\1 with Serial Console/g" \
|
||||||
|
-e "s/(${dist}-installer)/..\/\1/g" \
|
||||||
|
-e "s/(append.+)(--- quiet)/\1console=ttyS${SERIAL_PORT},${SERIAL_SPEED}n8 \2/" \
|
||||||
|
$WORKDIR/INSTALLER/${dist}.cfg
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
label exit-${dist}-installer
|
||||||
|
menu label Exit
|
||||||
|
menu exit
|
||||||
|
menu end
|
||||||
|
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/bash
|
||||||
|
source $(dirname $0)/defaults.conf
|
||||||
|
source ${WORKDIR}/mklive.conf
|
||||||
|
source $(dirname $0)/functions.sh
|
||||||
|
source $(dirname $0)/menufunction.sh
|
||||||
|
|
||||||
|
echo "Starting PXE creation"
|
||||||
|
|
||||||
|
PXELINUX_MODULES="ldlinux.c32 libmenu.c32 menu.c32"
|
||||||
|
PXELINUX_BIN="/usr/lib/PXELINUX/pxelinux.0"
|
||||||
|
|
||||||
|
checkstage live || err "Previous stage (live) was not finished"
|
||||||
|
|
||||||
|
startstage pxe
|
||||||
|
|
||||||
|
PXEDIR=${WORKDIR}/PXE
|
||||||
|
requiredir $PXEDIR
|
||||||
|
requiredir $PXEDIR/pxelinux
|
||||||
|
requiredir $PXEDIR/pxelinux/pxelinux.cfg
|
||||||
|
[ -L $PXEDIR/live ] || ln -s ../LIVE $PXEDIR/live
|
||||||
|
|
||||||
|
#copy pxelinux.bin
|
||||||
|
cp ${PXELINUX_BIN} $PXEDIR/pxelinux/
|
||||||
|
|
||||||
|
#create pxelinux.conf
|
||||||
|
menuhead > $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
menulivehead >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
menulivepxe >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
|
||||||
|
if [ "$PXE_INCLUDE_UBUNTU_INSTALLER" == "true" ] || [ "$PXE_INCLUDE_DEBIAN_INSTALLER" == "true" ]; then
|
||||||
|
menuinstallerhead >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PXE_INCLUDE_UBUNTU_INSTALLER" == "true" ]; then
|
||||||
|
menuinstaller ubuntu >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
[ -L $PXEDIR/ubuntu-installer ] || ln -s ../INSTALLER/ubuntu-installer $PXEDIR/ubuntu-installer
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$PXE_INCLUDE_HDT" == "true" ] || [ "$PXE_INCLUDE_MEMTEST" == "true" ]; then
|
||||||
|
menuhwhead >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PXE_INCLUDE_HDT" == "true" ]; then
|
||||||
|
PXELINUX_MODULES="${PXELINUX_MODULES} hdt.c32 libutil.c32 libgpl.c32 libcom32.c32"
|
||||||
|
menuhwhdt >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
[ -e /usr/share/misc/pci.ids ] && cp /usr/share/misc/pci.ids $PXEDIR/pxelinux/
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$PXE_INCLUDE_MEMTEST" == "true" ]; then
|
||||||
|
cp $MEMTEST_BIN $PXEDIR/memtest
|
||||||
|
menuhwmemtest >> $PXEDIR/pxelinux/pxelinux.cfg/default
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
#copy all modules
|
||||||
|
for m in $PXELINUX_MODULES
|
||||||
|
do
|
||||||
|
cp ${SYSLINUX_MODULESDIR}/$m $PXEDIR/pxelinux/
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
#create tarball
|
||||||
|
|
||||||
|
endstage pxe
|
||||||
|
|
Loading…
Reference in New Issue