fsck revision 197947
178344Sobrien#!/bin/sh 278344Sobrien# 398184Sgordon# $FreeBSD: head/etc/rc.d/fsck 197947 2009-10-10 22:17:03Z dougb $ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: fsck 7142962Sbrooks# REQUIRE: localswap 878344Sobrien# KEYWORD: nojail 978344Sobrien 1078344Sobrien. /etc/rc.subr 1178344Sobrien 12230099Sdougbname="fsck" 1378344Sobrienstart_cmd="fsck_start" 14151809Syarstop_cmd=":" 1578344Sobrien 1678344Sobrienfsck_start() 1778344Sobrien{ 1878344Sobrien if [ "$autoboot" = no ]; then 1978344Sobrien echo "Fast boot: skipping disk checks." 20197947Sdougb elif [ ! -r /etc/fstab ]; then 21142962Sbrooks echo "Warning! No /etc/fstab: skipping disk checks." 22197947Sdougb elif [ "$autoboot" = yes ]; then 2378344Sobrien # During fsck ignore SIGQUIT 2478344Sobrien trap : 3 2578344Sobrien 2678344Sobrien 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