Changeset View
Changeset View
Standalone View
Standalone View
head/sbin/init/rc.d/fsck
Property | Old Value | New Value |
---|---|---|
svn:executable | null | * \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
#!/bin/sh | |||||
# | |||||
# $FreeBSD$ | |||||
# | |||||
# PROVIDE: fsck | |||||
# REQUIRE: swap | |||||
# KEYWORD: nojail | |||||
. /etc/rc.subr | |||||
name="fsck" | |||||
desc="Run file system checks" | |||||
start_cmd="fsck_start" | |||||
stop_cmd=":" | |||||
fsck_start() | |||||
{ | |||||
if [ "$autoboot" = no ]; then | |||||
echo "Fast boot: skipping disk checks." | |||||
elif [ ! -r /etc/fstab ]; then | |||||
echo "Warning! No /etc/fstab: skipping disk checks." | |||||
elif [ "$autoboot" = yes ]; then | |||||
# During fsck ignore SIGQUIT | |||||
trap : 3 | |||||
check_startmsgs && echo "Starting file system checks:" | |||||
if checkyesno background_fsck; then | |||||
fsck -F -p | |||||
else | |||||
fsck -p | |||||
fi | |||||
err=$? | |||||
if [ ${err} -eq 3 ]; then | |||||
echo "Warning! Some of the devices might not be" \ | |||||
"available; retrying" | |||||
root_hold_wait | |||||
check_startmsgs && echo "Restarting file system checks:" | |||||
if checkyesno background_fsck; then | |||||
fsck -F -p | |||||
else | |||||
fsck -p | |||||
fi | |||||
err=$? | |||||
fi | |||||
case ${err} in | |||||
0) | |||||
;; | |||||
2) | |||||
stop_boot | |||||
;; | |||||
4) | |||||
echo "Rebooting..." | |||||
reboot | |||||
echo "Reboot failed; help!" | |||||
stop_boot | |||||
;; | |||||
8|16) | |||||
if checkyesno fsck_y_enable; then | |||||
echo "File system preen failed, trying fsck -y ${fsck_y_flags}" | |||||
fsck -y ${fsck_y_flags} | |||||
case $? in | |||||
0) | |||||
;; | |||||
*) | |||||
echo "Automatic file system check failed; help!" | |||||
stop_boot | |||||
;; | |||||
esac | |||||
else | |||||
echo "Automatic file system check failed; help!" | |||||
stop_boot | |||||
fi | |||||
;; | |||||
12) | |||||
echo "Boot interrupted." | |||||
stop_boot | |||||
;; | |||||
130) | |||||
stop_boot | |||||
;; | |||||
*) | |||||
echo "Unknown error ${err}; help!" | |||||
stop_boot | |||||
;; | |||||
esac | |||||
fi | |||||
} | |||||
load_rc_config $name | |||||
run_rc_command "$1" |