NetBSD/etc/rc.d/fsck_root
christos 87fc4e29f5 1. centralize the fsck error handling
2. don't check if root is on nfs
3. reboot -n if root was modified as the manual page suggests
2009-07-10 20:02:21 +00:00

52 lines
1001 B
Bash
Executable File

#!/bin/sh
#
# $NetBSD: fsck_root,v 1.3 2009/07/10 20:02:21 christos Exp $
#
# PROVIDE: fsck_root
$_rc_subr_loaded . /etc/rc.subr
name="fsck_root"
start_cmd="fsck_root_start"
stop_cmd=":"
fstab_file=/etc/fstab
fsck_root_start()
{
if [ -e /fastboot ]; then
echo "Fast boot: skipping disk checks."
return
fi
trap : 2 # Ignore SIGINT, SIGQUIT, so we
trap : 3 # enter single-user mode on failure.
# Do nothing if root file system has fs_passno=0 in /etc/fstab.
while read fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
do
case "${fs_spec}:${fs_file}:${fs_passno}" in
\#*|'':*)
continue # skip comment or blank line
;;
*:/:0)
echo "Not checking /: fs_passno = 0 in ${fstab_file}"
return
;;
*:/:*) case "${fs_spec}" in
*:*)
echo "Not checking /: nfs mounted"
return
;;
esac
;;
esac
done <"${fstab_file}"
echo "Starting root file system check:"
fsck $fsck_flags /
handle_fsck_error "$?"
}
load_rc_config $name
run_rc_command "$1"