fsck revision 197947
1#!/bin/sh 2# 3# $FreeBSD: head/etc/rc.d/fsck 197947 2009-10-10 22:17:03Z dougb $ 4# 5 6# PROVIDE: fsck 7# REQUIRE: localswap 8# KEYWORD: nojail 9 10. /etc/rc.subr 11 12name="fsck" 13start_cmd="fsck_start" 14stop_cmd=":" 15 16fsck_start() 17{ 18 if [ "$autoboot" = no ]; then 19 echo "Fast boot: skipping disk checks." 20 elif [ ! -r /etc/fstab ]; then 21 echo "Warning! No /etc/fstab: skipping disk checks." 22 elif [ "$autoboot" = yes ]; then 23 # During fsck ignore SIGQUIT 24 trap : 3 25 26 check_startmsgs && echo "Starting file system checks:" 27 if checkyesno background_fsck; then 28 fsck -F -p 29 else 30 fsck -p 31 fi 32 33 case $? in 34 0) 35 ;; 36 2) 37 stop_boot 38 ;; 39 4) 40 echo "Rebooting..." 41 reboot 42 echo "Reboot failed; help!" 43 stop_boot 44 ;; 45 8) 46 if checkyesno fsck_y_enable; then 47 echo "File system preen failed, trying fsck -y ${fsck_y_flags}" 48 fsck -y ${fsck_y_flags} 49 case $? in 50 0) 51 ;; 52 *) 53 echo "Automatic file system check failed; help!" 54 stop_boot 55 ;; 56 esac 57 else 58 echo "Automatic file system check failed; help!" 59 stop_boot 60 fi 61 ;; 62 12) 63 echo "Boot interrupted." 64 stop_boot 65 ;; 66 130) 67 stop_boot 68 ;; 69 *) 70 echo "Unknown error; help!" 71 stop_boot 72 ;; 73 esac 74 fi 75} 76 77load_rc_config $name 78run_rc_command "$1" 79