Initial commit
This commit is contained in:
63
bootstrap.d/50-firstboot.sh
Normal file
63
bootstrap.d/50-firstboot.sh
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
# First boot actions
|
||||
#
|
||||
|
||||
# Load utility functions
|
||||
. ./functions.sh
|
||||
|
||||
# Prepare rc.firstboot script
|
||||
cat files/firstboot/10-begin.sh > "${ETC_DIR}/rc.firstboot"
|
||||
|
||||
# Prepare filesystem auto expand
|
||||
if [ "$EXPANDROOT" = true ] ; then
|
||||
if [ "$ENABLE_CRYPTFS" = false ] ; then
|
||||
cat files/firstboot/20-expandroot.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
else
|
||||
# Regenerate initramfs to remove encrypted root partition auto expand
|
||||
cat files/firstboot/21-regenerate-initramfs.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
fi
|
||||
|
||||
# Restart dphys-swapfile so the size of the swap file is relative to the resized root partition
|
||||
if [ "$ENABLE_DPHYSSWAP" = true ] ; then
|
||||
cat files/firstboot/23-restart-dphys-swapfile.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure openssh server host keys are regenerated on first boot
|
||||
if [ "$SSH_ENABLE" = true ] ; then
|
||||
cat files/firstboot/30-generate-ssh-keys.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
fi
|
||||
|
||||
if [ "$ENABLE_DBUS" = true ] ; then
|
||||
# Ensure that dbus machine-id exists
|
||||
cat files/firstboot/40-generate-machineid.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
fi
|
||||
|
||||
# Create /etc/resolv.conf symlink
|
||||
cat files/firstboot/41-create-resolv-symlink.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
|
||||
# Configure automatic network interface names
|
||||
if [ "$ENABLE_IFNAMES" = true ] ; then
|
||||
cat files/firstboot/42-config-ifnames.sh >> "${ETC_DIR}/rc.firstboot"
|
||||
fi
|
||||
|
||||
# Execute custom firstboot scripts
|
||||
if [ -d "custom.d/firstboot" ] ; then
|
||||
for SCRIPT in custom.d/firstboot/*.sh; do
|
||||
. "$SCRIPT"
|
||||
done
|
||||
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"
|
||||
Reference in New Issue
Block a user