fsck_root revision 1.4
11.1Sjoerg#!/bin/sh
21.1Sjoerg#
31.4Smrg# $NetBSD: fsck_root,v 1.4 2010/02/16 02:46:02 mrg Exp $
41.1Sjoerg#
51.1Sjoerg
61.1Sjoerg# PROVIDE: fsck_root
71.1Sjoerg
81.1Sjoerg$_rc_subr_loaded . /etc/rc.subr
91.1Sjoerg
101.1Sjoergname="fsck_root"
111.1Sjoergstart_cmd="fsck_root_start"
121.1Sjoergstop_cmd=":"
131.2Sapbfstab_file=/etc/fstab
141.1Sjoerg
151.1Sjoergfsck_root_start()
161.1Sjoerg{
171.1Sjoerg	if [ -e /fastboot ]; then
181.1Sjoerg		echo "Fast boot: skipping disk checks."
191.1Sjoerg		return
201.1Sjoerg	fi
211.1Sjoerg	trap : 2 		# Ignore SIGINT, SIGQUIT, so we
221.1Sjoerg	trap : 3		# enter single-user mode on failure.
231.1Sjoerg
241.2Sapb	# Do nothing if root file system has fs_passno=0 in /etc/fstab.
251.2Sapb	while read fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
261.2Sapb	do
271.2Sapb		case "${fs_spec}:${fs_file}:${fs_passno}" in
281.2Sapb		\#*|'':*)
291.2Sapb			continue # skip comment or blank line
301.2Sapb			;;
311.2Sapb		*:/:0)
321.2Sapb			echo "Not checking /: fs_passno = 0 in ${fstab_file}"
331.2Sapb			return
341.2Sapb			;;
351.3Schristos		*:/:*)	case "${fs_spec}" in
361.3Schristos			*:*)
371.3Schristos				echo "Not checking /: nfs mounted"
381.3Schristos				return
391.3Schristos				;;
401.3Schristos			esac
411.4Smrg
421.4Smrg			echo "Starting root file system check:"
431.4Smrg			fsck $fsck_flags /
441.4Smrg			handle_fsck_error "$?"
451.4Smrg			return
461.2Sapb			;;
471.2Sapb		esac
481.4Smrg	done < "${fstab_file}"
491.1Sjoerg}
501.1Sjoerg
511.1Sjoergload_rc_config $name
521.1Sjoergrun_rc_command "$1"
53