fsck_root revision 1.1
11.1Sjoerg#!/bin/sh
21.1Sjoerg#
31.1Sjoerg# $NetBSD: fsck_root,v 1.1 2009/04/21 16:08:57 joerg 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.1Sjoerg
141.1Sjoergfsck_root_start()
151.1Sjoerg{
161.1Sjoerg	if [ -e /fastboot ]; then
171.1Sjoerg		echo "Fast boot: skipping disk checks."
181.1Sjoerg		return
191.1Sjoerg	fi
201.1Sjoerg	trap : 2 		# Ignore SIGINT, SIGQUIT, so we
211.1Sjoerg	trap : 3		# enter single-user mode on failure.
221.1Sjoerg
231.1Sjoerg	echo "Starting root file system check:"
241.1Sjoerg	fsck $fsck_flags /
251.1Sjoerg	local fsck_error="$?"
261.1Sjoerg	case $fsck_error in
271.1Sjoerg	0)	# OK
281.1Sjoerg		return
291.1Sjoerg		;;
301.1Sjoerg	2)	# Needs re-run, still fs errors
311.1Sjoerg		echo "file system still has errors; re-run fsck manually!"
321.1Sjoerg		;;
331.1Sjoerg	4)	# Root modified
341.1Sjoerg		echo "Root filesystem was modified, rebooting ..."
351.1Sjoerg		reboot
361.1Sjoerg		echo "Reboot failed; help!"
371.1Sjoerg		;;
381.1Sjoerg	8)	# Check failed
391.1Sjoerg		echo "Automatic file system check failed; help!"
401.1Sjoerg		;;
411.1Sjoerg	12)	# Got signal
421.1Sjoerg		echo "Boot interrupted."
431.1Sjoerg		;;
441.1Sjoerg	*)
451.1Sjoerg		echo "Unknown error $fsck_error; help!"
461.1Sjoerg		;;
471.1Sjoerg	esac
481.1Sjoerg	stop_boot
491.1Sjoerg}
501.1Sjoerg
511.1Sjoergload_rc_config $name
521.1Sjoergrun_rc_command "$1"
53