#!/bin/bash
#
# /etc/rc: system boot script
#

echo "The system is coming up.  Please wait."

# Load configuration
. /etc/rc.conf

# Start udev
/bin/mount -t proc none /proc
/bin/mount -t sysfs none /sys
/sbin/start_udev

# Create device-mapper device nodes and scan for LVM volume groups
if [ -x /sbin/lvm ]; then
	/sbin/vgscan --mknodes --ignorelockingfailure
	/sbin/vgchange --ignorelockingfailure -a y
fi

# Scan for btrfs volumes to simplify fstab entries
if [ -r /sys/fs/btrfs ]; then
	/sbin/btrfs dev scan
fi

# Mount root read-only
/bin/mount -o remount,ro /

if [ -f /forcefsck ]; then
FORCEFSCK="-f"
fi

# Check filesystems
/sbin/fsck $FORCEFSCK -A -T -C -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 -p
	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

# Update shared library links
/sbin/ldconfig

# 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/bin/setfont $FONT
fi

# Load console keymap
if [ "$KEYMAP" ]; then
	echo "keyboard: $KEYMAP"
	/usr/bin/loadkeys -q $KEYMAP
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
