#!/bin/sh # # $NetBSD: fsck_root,v 1.5 2010/09/25 15:10:14 bad 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:=0}" 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 echo "Starting root file system check:" fsck $fsck_flags / handle_fsck_error "$?" return ;; esac done < "${fstab_file}" } load_rc_config $name run_rc_command "$1"