fsck revision 1.3
11.1Slukem#!/bin/sh
21.1Slukem#
31.3Schristos# $NetBSD: fsck,v 1.3 2003/10/15 17:38:04 christos Exp $
41.1Slukem#
51.1Slukem
61.1Slukem# PROVIDE: fsck
71.1Slukem# REQUIRE: localswap
81.1Slukem
91.1Slukem. /etc/rc.subr
101.1Slukem
111.1Slukemname="fsck"
121.1Slukemstart_cmd="fsck_start"
131.1Slukemstop_cmd=":"
141.1Slukem
151.3Schristosif [ -z "$fsck_flags" ]
161.3Schristosthen
171.3Schristos	fsck_flags="-p"
181.3Schristosfi
191.3Schristos
201.1Slukemstop_boot()
211.1Slukem{
221.1Slukem	#	Terminate the process (which may include the parent /etc/rc)
231.1Slukem	#	if booting directly to multiuser mode.
241.1Slukem	#
251.1Slukem	if [ "$autoboot" = yes ]; then
261.1Slukem		kill -TERM $$
271.1Slukem	fi
281.1Slukem	exit 1
291.1Slukem}
301.1Slukem
311.1Slukemfsck_start()
321.1Slukem{
331.1Slukem	if [ -e /fastboot ]; then
341.1Slukem		echo "Fast boot: skipping disk checks."
351.2Slukem	else
361.1Slukem					# During fsck ignore SIGQUIT
371.1Slukem		trap : 3
381.1Slukem
391.2Slukem		echo "Starting file system checks:"
401.3Schristos		fsck $fsck_flags
411.1Slukem		case $? in
421.1Slukem		0)
431.1Slukem			;;
441.1Slukem		2)
451.1Slukem			stop_boot
461.1Slukem			;;
471.1Slukem		4)
481.1Slukem			echo "Rebooting..."
491.1Slukem			reboot
501.1Slukem			echo "Reboot failed; help!"
511.1Slukem			stop_boot
521.1Slukem			;;
531.1Slukem		8)
541.1Slukem			echo "Automatic file system check failed; help!"
551.1Slukem			stop_boot
561.1Slukem			;;
571.1Slukem		12)
581.1Slukem			echo "Boot interrupted."
591.1Slukem			stop_boot
601.1Slukem			;;
611.1Slukem		130)
621.1Slukem			stop_boot
631.1Slukem			;;
641.1Slukem		*)
651.1Slukem			echo "Unknown error; help!"
661.1Slukem			stop_boot
671.1Slukem			;;
681.1Slukem		esac
691.1Slukem	fi
701.1Slukem}
711.1Slukem
721.1Slukemload_rc_config $name
731.1Slukemrun_rc_command "$1"
74