|
|
#!/bin/bash
|
|
|
#
|
|
|
# First boot actions
|
|
|
#
|
|
|
|
|
|
# Load utility functions
|
|
|
. ./functions.sh
|
|
|
|
|
|
# Prepare rc.firstboot script
|
|
|
cat files/firstboot/10-begin.sh > "${ETC_DIR}/rc.firstboot"
|
|
|
|
|
|
# Ensure openssh server host keys are regenerated on first boot
|
|
|
if [ "$ENABLE_SSHD" = true ] ; then
|
|
|
cat files/firstboot/21-generate-ssh-keys.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
fi
|
|
|
|
|
|
# Prepare filesystem auto expand
|
|
|
if [ "$EXPANDROOT" = true ] ; then
|
|
|
if [ "$ENABLE_CRYPTFS" = false ] ; then
|
|
|
cat files/firstboot/22-expandroot.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
else
|
|
|
# Regenerate initramfs to remove encrypted root partition auto expand
|
|
|
cat files/firstboot/23-regenerate-initramfs.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
fi
|
|
|
fi
|
|
|
|
|
|
# Ensure that dbus machine-id exists
|
|
|
cat files/firstboot/24-generate-machineid.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
|
|
|
# Create /etc/resolv.conf symlink
|
|
|
cat files/firstboot/25-create-resolv-symlink.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
|
|
|
# Configure automatic network interface names
|
|
|
if [ "$ENABLE_IFNAMES" = true ] ; then
|
|
|
cat files/firstboot/26-config-ifnames.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
fi
|
|
|
|
|
|
# Finalize rc.firstboot script
|
|
|
cat files/firstboot/99-finish.sh >> "${ETC_DIR}/rc.firstboot"
|
|
|
chmod +x "${ETC_DIR}/rc.firstboot"
|
|
|
|
|
|
# Install default rc.local if it does not exist
|
|
|
if [ ! -f "${ETC_DIR}/rc.local" ] ; then
|
|
|
install_exec files/etc/rc.local "${ETC_DIR}/rc.local"
|
|
|
fi
|
|
|
|
|
|
# Add rc.firstboot script to rc.local
|
|
|
sed -i '/exit 0/d' "${ETC_DIR}/rc.local"
|
|
|
echo /etc/rc.firstboot >> "${ETC_DIR}/rc.local"
|
|
|
echo exit 0 >> "${ETC_DIR}/rc.local"
|
|
|
|