mklive/scripts/bootstrap.sh

106 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
source ${WORKDIR}/mklive.conf
source $(dirname $0)/functions.sh
echo "Build live"
BUILD_TIME=$(date +%Y-%m-%dT%H:%M)
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
DEFAULT_PACKAGES=console-setup
#install additional packages
if [ -n "${PACKAGES}" ]; then
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
LC_ALL=C LANGUAGE=C LANG=C chroot $CHROOT apt-get -y install ${DEFAULT_PACKAGES} ${PACKAGES}
fi
echo "LANG=de_DE.UTF-8" >> $CHROOT/etc/default/locale
if [ "${LIVE_AUTOLOGIN}" == "true" ]; then
requiredir "$CHROOT/etc/systemd/system/getty@tty1.service.d/"
cat > "$CHROOT/etc/systemd/system/getty@tty1.service.d/override.conf" << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I \$TERM
EOF
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
#remove ubuntu ads
for f in 00-header 10-help-text 50-motd-news
do
[ -f ${CHROOT}/etc/update-motd.d/$f ] && rm ${CHROOT}/etc/update-motd.d/$f
done
#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/
if [ -x $CHROOT/usr/sbin/sshd ];then
cat > $CHROOT/etc/systemd/system/regenerate_ssh_host_keys.service << EOF
[Unit]
Description=Regenerate SSH host keys
Before=ssh.service
[Service]
Type=oneshot
ExecStartPre=-/bin/sh -c "/bin/rm -f -v /etc/ssh/ssh_host_*_key*"
ExecStart=/usr/bin/ssh-keygen -A -v
ExecStartPost=/bin/systemctl disable regenerate_ssh_host_keys
[Install]
WantedBy=multi-user.target
EOF
[ -e ${CHROOT}/etc/systemd/system/multi-user.target.wants/regenerate_ssh_host_keys.service ] || ln -s ../regenerate_ssh_host_keys.service ${CHROOT}/etc/systemd/system/multi-user.target.wants/regenerate_ssh_host_keys.service
fi
#final changes
echo "${LIVE_HOSTNAME}" > $CHROOT/etc/hostname
echo "${LIVE_NAME} Build@${BUILD_TIME} \\l" > $CHROOT/etc/issue
echo "${LIVE_NAME} Build@${BUILD_TIME}" > $CHROOT/etc/issue.net
echo "" >> $CHROOT/etc/legal
endstage bootstrap