87fc4e29f5
2. don't check if root is on nfs 3. reboot -n if root was modified as the manual page suggests
52 lines
1001 B
Bash
Executable File
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"
|