summaryrefslogtreecommitdiff
path: root/rc.sysinit
blob: deb4f55544fa168f2bd5c269936b30aa3bc8f499 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/sh
#
# /etc/rc.sysinit
#

echo -n "[                                                "
echo    "                              ]"
echo -n "[                         Booting Arch Linux #VERSION# "
echo    "                              ]"
echo -n "[                                                "
echo    "                              ]"

. /etc/rc.conf
. /etc/rc.d/functions

status "Starting DevFS Daemon" /sbin/devfsd /dev

status "Activating Swap" /sbin/swapon -a

status "Mounting Root Read-only" /bin/mount -n -o remount,ro /

stat_busy "Checking Filesystems"
/sbin/fsck -A -T -C -a
if [ $? -gt 1 ]; then
  stat_fail
  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
  /bin/mount -n -o remount,ro /
  /sbin/reboot -f
  exit 0
fi
stat_done

stat_busy "Mounting Local Filesystems"
/bin/mount -n -o remount,rw /
/bin/rm -f /etc/mtab*
/bin/mount -a -t nonfs
stat_done

stat_busy "Configuring System Clock"
if [ "$HARDWARECLOCK" = "UTC" ]; then
  /sbin/hwclock --utc --hctosys
else
  /sbin/hwclock --localtime --hctosys
fi
if [ ! -f /var/lib/hwclock/adjtime ]; then
  echo "0.0 0 0.0" > /var/lib/hwclock/adjtime
fi
if [ "$TIMEZONE" != "" ]; then
  /bin/ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
fi
stat_done

stat_busy "Removing Leftover Files"
/bin/rm -f /etc/nologin &> /dev/null
/bin/rm -f /etc/shutdownpid &> /dev/null
/bin/rm -f /var/locks/* &> /dev/null
/bin/rm -f /var/run/*.pid &> /dev/null
/bin/rm -f /var/run/daemons/* &>/dev/null
/bin/rm -rf /tmp/* /tmp/.* &> /dev/null
: > /var/run/utmp
stat_done

status "Updating Shared Library Links" /sbin/ldconfig

if [ "$HOSTNAME" != "" ]; then
  status "Setting Hostname: $HOSTNAME" /bin/hostname $HOSTNAME
fi

status "Starting System Logger" /usr/sbin/syslogd -m 0

status "Starting Kernel Logger" /usr/sbin/klogd -c 4

kernel_version=`uname -r`
if [ -e "/lib/modules/$kernel_version/modules.dep" ]; then
  new_mods=`/usr/bin/find /lib/modules/$kernel_version -type f -newer /lib/modules/$kernel_version/modules.dep`
  if [ ! -z "$new_mods" ]; then
    status "Updating Module Dependencies" /sbin/depmod -a
  fi
else
  status "Updating Module Dependencies" /sbin/depmod -a
fi

if [ -f /var/run/random-seed ]; then
	status "Initializing Random Seed" /bin/cat /var/run/random-seed > /dev/urandom
fi

if [ "$KEYMAP" != "" ]; then
  status "Loading Keyboard Map: $KEYMAP" /bin/loadkeys -q $KEYMAP
fi

# Load modules from the MODULES array defined in rc.conf
for mod in "${MODULES[@]}"; do
  if [[ `echo $mod | grep '^[^\!]' | wc -l` -eq 1 ]]; then
    /sbin/modprobe $mod
  fi
done

# Screen blanks after 15 minutes idle time
/usr/bin/setterm -blank 15

# End of file