| 1 | #!/bin/bash |
| 2 | # |
| 3 | # /etc/rc: system boot script |
| 4 | # |
| 5 | |
| 6 | echo "The system is coming up. Please wait." |
| 7 | |
| 8 | # Load configuration |
| 9 | . /etc/rc.conf |
| 10 | |
| 11 | # Start udev |
| 12 | /bin/mount -n -t proc none /proc |
| 13 | /bin/mount -n -t sysfs none /sys |
| 14 | /sbin/start_udev |
| 15 | |
| 16 | # Create device-mapper device nodes and scan for LVM volume groups |
| 17 | if [ -x /sbin/lvm ]; then |
| 18 | /sbin/vgscan --mknodes --ignorelockingfailure |
| 19 | /sbin/vgchange --ignorelockingfailure -a y |
| 20 | fi |
| 21 | |
| 22 | # Mount root read-only |
| 23 | /bin/mount -n -o remount,ro / |
| 24 | |
| 25 | if [ -f /forcefsck ]; then |
| 26 | FORCEFSCK="-f" |
| 27 | fi |
| 28 | |
| 29 | # Check filesystems |
| 30 | /sbin/fsck $FORCEFSCK -A -T -C -a |
| 31 | if [ $? -gt 1 ]; then |
| 32 | echo |
| 33 | echo "*************** FILESYSTEM CHECK FAILED ******************" |
| 34 | echo "* *" |
| 35 | echo "* Please repair manually and reboot. Note that the root *" |
| 36 | echo "* file system is currently mounted read-only. To remount *" |
| 37 | echo "* it read-write type: mount -n -o remount,rw / *" |
| 38 | echo "* When you exit the maintainance shell the system will *" |
| 39 | echo "* reboot automatically. *" |
| 40 | echo "* *" |
| 41 | echo "************************************************************" |
| 42 | echo |
| 43 | /sbin/sulogin -p |
| 44 | echo "Automatic reboot in progress..." |
| 45 | /bin/umount -a -r |
| 46 | /bin/mount -n -o remount,ro / |
| 47 | /sbin/reboot -f |
| 48 | exit 0 |
| 49 | fi |
| 50 | |
| 51 | # Mount local filesystems |
| 52 | /bin/mount -n -o remount,rw / |
| 53 | /bin/umount /sys /proc |
| 54 | /bin/rm -f /etc/mtab* |
| 55 | /bin/touch /etc/mtab |
| 56 | /bin/mount -o remount,rw / |
| 57 | /bin/mount -a -O no_netdev |
| 58 | |
| 59 | # Activate swap |
| 60 | /sbin/swapon -a |
| 61 | |
| 62 | # Clean up misc files |
| 63 | : > /var/run/utmp |
| 64 | /bin/rm -rf /forcefsck /fastboot /etc/nologin /etc/shutdownpid |
| 65 | (cd /var/run && /usr/bin/find . -name "*.pid" -delete) |
| 66 | (cd /var/lock && /usr/bin/find . ! -type d -delete) |
| 67 | (cd /tmp && /usr/bin/find . ! -name . -delete) |
| 68 | /bin/mkdir -m 1777 /tmp/.ICE-unix |
| 69 | |
| 70 | # Set kernel variables |
| 71 | /sbin/sysctl -p > /dev/null |
| 72 | |
| 73 | # Update shared library links |
| 74 | /sbin/ldconfig |
| 75 | |
| 76 | # Configure host name |
| 77 | if [ "$HOSTNAME" ]; then |
| 78 | echo "hostname: $HOSTNAME" |
| 79 | /bin/hostname $HOSTNAME |
| 80 | fi |
| 81 | |
| 82 | # Load random seed |
| 83 | /bin/cat /var/lib/urandom/seed > /dev/urandom |
| 84 | |
| 85 | # Configure system clock |
| 86 | if [ "$TIMEZONE" ]; then |
| 87 | /bin/ln -snf /usr/share/zoneinfo/$TIMEZONE /etc/localtime |
| 88 | fi |
| 89 | /sbin/hwclock --hctosys |
| 90 | |
| 91 | # Load console font |
| 92 | if [ "$FONT" ]; then |
| 93 | echo "font: $FONT" |
| 94 | /usr/bin/setfont $FONT |
| 95 | fi |
| 96 | |
| 97 | # Load console keymap |
| 98 | if [ "$KEYMAP" ]; then |
| 99 | echo "keyboard: $KEYMAP" |
| 100 | /usr/bin/loadkeys -q $KEYMAP |
| 101 | fi |
| 102 | |
| 103 | # Screen blanks after 15 minutes idle time |
| 104 | /usr/bin/setterm -blank 15 |
| 105 | |
| 106 | # Run module initialization script |
| 107 | if [ -x /etc/rc.modules ]; then |
| 108 | /etc/rc.modules |
| 109 | fi |
| 110 | |
| 111 | # Save boot messages |
| 112 | /bin/dmesg > /var/log/boot |
| 113 | |
| 114 | # End of file |