Magellan Linux

Contents of /trunk/magellan-initscripts/etc/rc.d/init.d/checkfs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1253 - (show annotations) (download)
Fri Mar 11 17:20:16 2011 UTC (13 years, 1 month ago) by niro
File size: 2571 byte(s)
-respect start|stop pragma
-use rc_print and rc_echo

1 #!/bin/bash
2 # $Id$
3
4 #%rlevels: 7:s
5 #%start: 30
6 #%stop:
7
8 #deps
9 #%needs:
10 #%before:
11 #%after:
12
13 source /etc/conf.d/rc
14 source ${rc_functions}
15
16 case "$1" in
17 start)
18 # stops annoying kernel messages
19 echo "0" > /proc/sys/kernel/printk
20
21 if [ -f /fastboot ]
22 then
23 rc_echo "Fast boot requested, will not perform file system checks ..."
24 exit 0
25 fi
26
27 rc_print "Mounting root file system in read-only mode ..."
28 mount -n -o remount,ro /
29 evaluate_retval
30
31 if [ $? != 0 ]
32 then
33 $FAILURE
34 rc_echo
35 rc_echo "Cannot check root file system because it could not"
36 rc_echo "be mounted in read-only mode."
37 rc_echo
38 rc_echo -n "When you press enter, this system will be halted."
39 $NORMAL
40 rc_echo
41 rc_echo "Press enter to continue ..."
42 read
43 rc_echo "gonna run: $rc_base/init.d/halt"
44 $rc_base/init.d/halt
45 fi
46
47 if [ -f /forcefsck ]
48 then
49 rc_echo "/forcefsck exists, forcing file system check"
50 options="-f"
51 else
52 options=""
53 fi
54
55 rc_print "Checking file systems ..."
56 #Note: -a option used to be -p; but this fails e.g. on fsck.minix
57 fsck $options -a -A -C -T
58 error_value=$?
59
60 if [ "$error_value" = 1 ]
61 then
62 $WARNING
63 rc_echo "File system errors were found and have been corrected."
64 rc_echo "You may want to double-check that everything was fixed"
65 rc_echo -n "properly"
66 $NORMAL
67 print_status warning
68 fi
69
70 if [ "$error_value" = 0 ]
71 then
72 print_status success
73 fi
74
75 if [ "$error_value" = 2 ]
76 then
77 $WARNING
78 rc_echo "File system errors were found and have been corrected, but"
79 rc_echo "the nature of the errors require this system to be rebooted."
80 rc_echo
81 rc_echo -n "When you press enter, this system will be rebooted."
82 $NORMAL
83 print_status warning
84 rc_echo
85 rc_echo "Please press enter to continue ..."
86 read
87 $rc_base/init.d/reboot
88 fi
89
90 if [ "$error_value" -gt 2 -a "$error_value" -lt 16 ]
91 then
92 $FAILURE
93 rc_echo "File system errors were encountered that couldn't be"
94 rc_echo "fixed automatically. This system cannot continue to boot"
95 rc_echo "and will therefore be halted until those errors fixed manually"
96 rc_echo "by a System Administrator."
97 rc_echo
98 rc_echo -n "When you press enter, this system will be halted."
99 $NORMAL
100 print_status failure
101 rc_echo
102 rc_echo "Press enter to continue ..."
103 rc_echo
104 $rc_base/init.d/halt
105 fi
106
107 #sets default level for kernel messages
108 echo "3" > /proc/sys/kernel/printk
109
110 update_svcstatus $1
111 splash svc_started "$(basename $0)" 0
112 ;;
113
114 *)
115 rc_echo "Usage: $0 {start}"
116 exit 1
117 ;;
118 esac

Properties

Name Value
svn:executable *