]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - etc/rc.d/fsck
This commit was generated by cvs2svn to compensate for changes in r171827,
[FreeBSD/FreeBSD.git] / etc / rc.d / fsck
1 #!/bin/sh
2 #
3 # $NetBSD: fsck,v 1.2 2001/06/18 06:42:35 lukem Exp $
4 # $FreeBSD$
5 #
6
7 # PROVIDE: fsck
8 # REQUIRE: localswap
9 # KEYWORD: nojail
10
11 . /etc/rc.subr
12
13 name="fsck"
14 start_cmd="fsck_start"
15 stop_cmd=":"
16
17 fsck_start()
18 {
19         if [ "$autoboot" = no ]; then
20                 echo "Fast boot: skipping disk checks."
21         elif [ ! -r /etc/fstab ]; then
22                 echo "Warning! No /etc/fstab: skipping disk checks."
23         elif [ "$autoboot" = yes ]; then
24                                         # During fsck ignore SIGQUIT
25                 trap : 3
26
27                 echo "Starting file system checks:"
28                 if checkyesno background_fsck; then
29                         fsck -F -p
30                 else
31                         fsck -p
32                 fi
33
34                 case $? in
35                 0)
36                         ;;
37                 2)
38                         stop_boot
39                         ;;
40                 4)
41                         echo "Rebooting..."
42                         reboot
43                         echo "Reboot failed; help!"
44                         stop_boot
45                         ;;
46                 8)
47                         if checkyesno fsck_y_enable; then
48                                 echo "File system preen failed, trying fsck -y."
49                                 fsck -y
50                                 case $? in
51                                 0)
52                                         ;;
53                                 *)
54                                 echo "Automatic file system check failed; help!"
55                                         stop_boot
56                                         ;;
57                                 esac
58                         else
59                                 echo "Automatic file system check failed; help!"
60                                 stop_boot
61                         fi
62                         ;;
63                 12)
64                         echo "Boot interrupted."
65                         stop_boot
66                         ;;
67                 130)
68                         stop_boot
69                         ;;
70                 *)
71                         echo "Unknown error; help!"
72                         stop_boot
73                         ;;
74                 esac
75         fi
76 }
77
78 load_rc_config $name
79 run_rc_command "$1"