aboutsummaryrefslogtreecommitdiff
path: root/rc.sysinit
blob: ee8a39ba630188a9ed2a9f817aa1666b16163e33 (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
115
116
117
118
119
120
121
122
123
124
125
126
#!/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

# /proc is temporarily mounted to check for LVM support - it is re-mounted
# later from /etc/fstab
/bin/mount -n -t proc none /proc
if [ -f /proc/lvm/global -a -x /sbin/vgchange ]; then
	stat_busy "Scanning for LVM groups"
	/sbin/vgchange -a y
	stat_done
fi
umount /proc

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
stat_busy "Loading Modules"
for mod in "${MODULES[@]}"; do
	if [[ `echo $mod | grep '^[^\!]' | wc -l` -eq 1 ]]; then
		/sbin/modprobe $mod
	fi
done
stat_done

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

# End of file