package.mk/recipes/rc/rc
2021-03-27 23:53:49 +01:00

122 lines
2.7 KiB
Bash
Executable File

#!/bin/zsh
#
# /etc/rc: system boot script
#
echo "The system is coming up. Please wait."
# Load configuration
. /etc/rc.conf
/bin/mount -t proc none /proc
/bin/mount -t sysfs none /sys
/bin/mount -t devtmpfs none /dev
# Start udev
/sbin/mdev -s
if [ -e /proc/sys/kernel/hotplug ]; then
echo "hotplug: mdev"
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
fi
# Create device-mapper device nodes and scan for LVM volume groups
if [ -x /sbin/lvm ]; then
/sbin/vgscan --mknodes --ignorelockingfailure
/sbin/vgchange --sysinit -a y
fi
# Mount root read-only
/bin/mount -o remount,ro /
if [ -f /forcefsck ]; then
FORCEFSCK="-f"
fi
# Check filesystems
/sbin/fsck $FORCEFSCK -A -T -a
if [ $? -gt 1 ]; then
echo
echo "*************** FILESYSTEM CHECK FAILED ******************"
echo "* *"
echo "* Please repair manually and reboot. Note that the root *"
echo "* file system is currently mounted read-only. To remount *"
echo "* it read-write type: mount -n -o remount,rw / *"
echo "* When you exit the maintainance shell the system will *"
echo "* reboot automatically. *"
echo "* *"
echo "************************************************************"
echo
/sbin/sulogin
echo "Automatic reboot in progress..."
/bin/umount -a -r
/bin/mount -o remount,ro /
/sbin/reboot -f
exit 0
fi
# Mount local filesystems
/bin/mount -o remount,rw /
/bin/mount -a -O no_netdev
# Activate swap
/sbin/swapon -a
# Clean up misc files
: > /var/run/utmp
/bin/rm -rf /forcefsck /fastboot /etc/nologin /etc/shutdownpid
(cd /var/run && /usr/bin/find . -name "*.pid" -delete)
(cd /var/lock && /usr/bin/find . ! -type d -delete)
(cd /tmp && /usr/bin/find . ! -name . -delete)
/bin/mkdir -m 1777 /tmp/.ICE-unix
# Set kernel variables
/sbin/sysctl -p > /dev/null
# Configure host name
if [ "$HOSTNAME" ]; then
echo "hostname: $HOSTNAME"
/bin/hostname $HOSTNAME
fi
# Load random seed
/bin/cat /var/lib/urandom/seed > /dev/urandom
# Configure system clock
if [ "$TIMEZONE" ]; then
/bin/ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
fi
/sbin/hwclock --hctosys
# Load console font
if [ "$FONT" ]; then
echo "font: $FONT"
/usr/sbin/setfont $FONT
fi
# Load console keymap
if [ "$KEYMAP" ]; then
echo "keyboard: $KEYMAP"
local KEYMAP_FILE
if [ -f "$KEYMAP" ]; then
KEYMAP_FILE="$KEYMAP"
else
KEYMAP_FILE=/usr/share/kbd/keymaps/$KEYMAP.map.gz
fi
zcat $KEYMAP_FILE | loadkmap
fi
# Screen blanks after 15 minutes idle time
#/usr/bin/setterm -blank 15
# Run module initialization script
if [ -x /etc/rc.modules ]; then
/etc/rc.modules
fi
# Save boot messages
/bin/dmesg > /var/log/boot
# End of file