fsck_root revision 1.1
11.94Smjacob#!/bin/sh
21.60Smjacob#
31.60Smjacob# $NetBSD: fsck_root,v 1.1 2009/04/21 16:08:57 joerg Exp $
41.60Smjacob#
51.60Smjacob
61.64Swiz# PROVIDE: fsck_root
71.64Swiz
81.64Swiz$_rc_subr_loaded . /etc/rc.subr
91.64Swiz
101.64Swizname="fsck_root"
111.64Swizstart_cmd="fsck_root_start"
121.64Swizstop_cmd=":"
131.64Swiz
141.64Swizfsck_root_start()
151.60Smjacob{
161.60Smjacob	if [ -e /fastboot ]; then
171.60Smjacob		echo "Fast boot: skipping disk checks."
181.60Smjacob		return
191.60Smjacob	fi
201.60Smjacob	trap : 2 		# Ignore SIGINT, SIGQUIT, so we
211.60Smjacob	trap : 3		# enter single-user mode on failure.
221.60Smjacob
231.60Smjacob	echo "Starting root file system check:"
241.60Smjacob	fsck $fsck_flags /
251.60Smjacob	local fsck_error="$?"
261.60Smjacob	case $fsck_error in
271.60Smjacob	0)	# OK
281.60Smjacob		return
291.60Smjacob		;;
301.1Scgd	2)	# Needs re-run, still fs errors
311.54Smjacob		echo "file system still has errors; re-run fsck manually!"
321.54Smjacob		;;
331.54Smjacob	4)	# Root modified
341.73Smjacob		echo "Root filesystem was modified, rebooting ..."
351.54Smjacob		reboot
361.1Scgd		echo "Reboot failed; help!"
371.1Scgd		;;
381.1Scgd	8)	# Check failed
391.1Scgd		echo "Automatic file system check failed; help!"
401.1Scgd		;;
411.1Scgd	12)	# Got signal
421.54Smjacob		echo "Boot interrupted."
431.54Smjacob		;;
441.62Smjacob	*)
451.54Smjacob		echo "Unknown error $fsck_error; help!"
461.1Scgd		;;
471.54Smjacob	esac
481.54Smjacob	stop_boot
491.54Smjacob}
501.54Smjacob
511.54Smjacobload_rc_config $name
521.54Smjacobrun_rc_command "$1"
531.54Smjacob