0bdb9e0220
in keeping the scripts under rc.d in sync with us. So, begin removal of NetBSD specific stuff (which made our scripts more complicated than necessary), starting with the NetBSD KEYWORD.
104 lines
1.5 KiB
Bash
Executable File
104 lines
1.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: fsck,v 1.2 2001/06/18 06:42:35 lukem Exp $
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: fsck
|
|
# REQUIRE: localswap
|
|
# KEYWORD: FreeBSD
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="fsck"
|
|
start_cmd="fsck_start"
|
|
stop_cmd=":"
|
|
|
|
stop_boot()
|
|
{
|
|
# Terminate the process (which may include the parent /etc/rc)
|
|
# if booting directly to multiuser mode.
|
|
#
|
|
if [ "$autoboot" = yes ]; then
|
|
kill -TERM $$
|
|
fi
|
|
exit 1
|
|
}
|
|
|
|
fsck_start()
|
|
{
|
|
if [ "$autoboot" = no ]; then
|
|
echo "Fast boot: skipping disk checks."
|
|
elif [ "$autoboot" = yes ]; then
|
|
# During fsck ignore SIGQUIT
|
|
trap : 3
|
|
|
|
echo "Starting file system checks:"
|
|
case ${OSTYPE} in
|
|
FreeBSD)
|
|
if checkyesno background_fsck; then
|
|
fsck -F -p
|
|
else
|
|
fsck -p
|
|
fi
|
|
;;
|
|
NetBSD)
|
|
fsck -p
|
|
;;
|
|
esac
|
|
|
|
case $? in
|
|
0)
|
|
;;
|
|
2)
|
|
stop_boot
|
|
;;
|
|
4)
|
|
echo "Rebooting..."
|
|
reboot
|
|
echo "Reboot failed; help!"
|
|
stop_boot
|
|
;;
|
|
8)
|
|
case ${OSTYPE} in
|
|
FreeBSD)
|
|
if checkyesno fsck_y_enable; then
|
|
echo "File system preen failed, trying fsck -y."
|
|
fsck -y
|
|
case $? in
|
|
0)
|
|
;;
|
|
*)
|
|
echo "Automatic file system check failed; help!"
|
|
stop_boot
|
|
;;
|
|
esac
|
|
else
|
|
echo "Automatic file system check failed; help!"
|
|
stop_boot
|
|
fi
|
|
;;
|
|
NetBSD)
|
|
echo "Automatic file system check failed; help!"
|
|
stop_boot
|
|
;;
|
|
esac
|
|
;;
|
|
12)
|
|
echo "Boot interrupted."
|
|
stop_boot
|
|
;;
|
|
130)
|
|
stop_boot
|
|
;;
|
|
*)
|
|
echo "Unknown error; help!"
|
|
stop_boot
|
|
;;
|
|
esac
|
|
fi
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command "$1"
|