fsck revision 289186
184053Sbrooks#!/bin/sh
284053Sbrooks#
3139823Simp# $FreeBSD: head/etc/rc.d/fsck 289186 2015-10-12 14:23:10Z vangyzen $
4139823Simp#
5139823Simp
684053Sbrooks# PROVIDE: fsck
784053Sbrooks# REQUIRE: swap
884053Sbrooks# KEYWORD: nojail
984053Sbrooks
1084053Sbrooks. /etc/rc.subr
1184053Sbrooks
1284053Sbrooksname="fsck"
1384053Sbrooksstart_cmd="fsck_start"
1484053Sbrooksstop_cmd=":"
1584053Sbrooks
1684053Sbrooksfsck_start()
1784053Sbrooks{
1884053Sbrooks	if [ "$autoboot" = no ]; then
1984053Sbrooks		echo "Fast boot: skipping disk checks."
2084053Sbrooks	elif [ ! -r /etc/fstab ]; then
2184053Sbrooks		echo "Warning! No /etc/fstab: skipping disk checks."
2284053Sbrooks	elif [ "$autoboot" = yes ]; then
2384053Sbrooks		# During fsck ignore SIGQUIT
2484053Sbrooks		trap : 3
2584053Sbrooks
2684053Sbrooks		check_startmsgs && echo "Starting file system checks:"
2784053Sbrooks		if checkyesno background_fsck; then
2884053Sbrooks			fsck -F -p
2984053Sbrooks		else
3084053Sbrooks			fsck -p
3184053Sbrooks		fi
3284053Sbrooks
3384053Sbrooks		case $? in
3484053Sbrooks		0)
3584053Sbrooks			;;
3684053Sbrooks		2)
3784053Sbrooks			stop_boot
3884053Sbrooks			;;
3984053Sbrooks		4)
4084053Sbrooks			echo "Rebooting..."
4184053Sbrooks			reboot
4284053Sbrooks			echo "Reboot failed; help!"
4384053Sbrooks			stop_boot
4484053Sbrooks			;;
4584053Sbrooks		8)
4684053Sbrooks			if checkyesno fsck_y_enable; then
4784053Sbrooks				echo "File system preen failed, trying fsck -y ${fsck_y_flags}"
4884053Sbrooks				fsck -y ${fsck_y_flags}
4984053Sbrooks				case $? in
5084053Sbrooks				0)
5184053Sbrooks					;;
5284053Sbrooks				*)
5384053Sbrooks				echo "Automatic file system check failed; help!"
5484053Sbrooks					stop_boot
5584053Sbrooks					;;
5684053Sbrooks				esac
5784053Sbrooks			else
5884053Sbrooks				echo "Automatic file system check failed; help!"
5984053Sbrooks				stop_boot
6084053Sbrooks			fi
6184053Sbrooks			;;
6284053Sbrooks		12)
6384053Sbrooks			echo "Boot interrupted."
6484053Sbrooks			stop_boot
6584053Sbrooks			;;
6684053Sbrooks		130)
6784053Sbrooks			stop_boot
6884053Sbrooks			;;
6984053Sbrooks		*)
7084053Sbrooks			echo "Unknown error; help!"
7184053Sbrooks			stop_boot
7284053Sbrooks			;;
7384053Sbrooks		esac
7484053Sbrooks	fi
7584053Sbrooks}
7684053Sbrooks
7784053Sbrooksload_rc_config $name
7884053Sbrooksrun_rc_command "$1"
7984053Sbrooks