fsck_root revision 1.3
1#!/bin/sh
2#
3# $NetBSD: fsck_root,v 1.3 2009/07/10 20:02:21 christos Exp $
4#
5
6# PROVIDE: fsck_root
7
8$_rc_subr_loaded . /etc/rc.subr
9
10name="fsck_root"
11start_cmd="fsck_root_start"
12stop_cmd=":"
13fstab_file=/etc/fstab
14
15fsck_root_start()
16{
17	if [ -e /fastboot ]; then
18		echo "Fast boot: skipping disk checks."
19		return
20	fi
21	trap : 2 		# Ignore SIGINT, SIGQUIT, so we
22	trap : 3		# enter single-user mode on failure.
23
24	# Do nothing if root file system has fs_passno=0 in /etc/fstab.
25	while read fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
26	do
27		case "${fs_spec}:${fs_file}:${fs_passno}" in
28		\#*|'':*)
29			continue # skip comment or blank line
30			;;
31		*:/:0)
32			echo "Not checking /: fs_passno = 0 in ${fstab_file}"
33			return
34			;;
35		*:/:*)	case "${fs_spec}" in
36			*:*)
37				echo "Not checking /: nfs mounted"
38				return
39				;;
40			esac
41			;;
42		esac
43	done <"${fstab_file}"
44
45	echo "Starting root file system check:"
46	fsck $fsck_flags /
47	handle_fsck_error "$?"
48}
49
50load_rc_config $name
51run_rc_command "$1"
52