fsck revision 78344
178344Sobrien#!/bin/sh 278344Sobrien# 378344Sobrien# $NetBSD$ 478344Sobrien# 578344Sobrien 678344Sobrien# PROVIDE: fsck 778344Sobrien# REQUIRE: localswap 878344Sobrien 978344Sobrien. /etc/rc.subr 1078344Sobrien 1178344Sobrienname="fsck" 1278344Sobrienstart_cmd="fsck_start" 1378344Sobrienstop_cmd=":" 1478344Sobrien 1578344Sobrienstop_boot() 1678344Sobrien{ 1778344Sobrien # Terminate the process (which may include the parent /etc/rc) 1878344Sobrien # if booting directly to multiuser mode. 1978344Sobrien # 2078344Sobrien if [ "$autoboot" = yes ]; then 2178344Sobrien kill -TERM $$ 2278344Sobrien fi 2378344Sobrien exit 1 2478344Sobrien} 2578344Sobrien 2678344Sobrienfsck_start() 2778344Sobrien{ 2878344Sobrien if [ -e /fastboot ]; then 2978344Sobrien echo "Fast boot: skipping disk checks." 3078344Sobrien elif [ "$autoboot" = yes ]; then 3178344Sobrien # During fsck ignore SIGQUIT 3278344Sobrien trap : 3 3378344Sobrien 3478344Sobrien echo "Automatic boot in progress: starting file system checks." 3578344Sobrien fsck -p 3678344Sobrien case $? in 3778344Sobrien 0) 3878344Sobrien ;; 3978344Sobrien 2) 4078344Sobrien stop_boot 4178344Sobrien ;; 4278344Sobrien 4) 4378344Sobrien echo "Rebooting..." 4478344Sobrien reboot 4578344Sobrien echo "Reboot failed; help!" 4678344Sobrien stop_boot 4778344Sobrien ;; 4878344Sobrien 8) 4978344Sobrien echo "Automatic file system check failed; help!" 5078344Sobrien stop_boot 5178344Sobrien ;; 5278344Sobrien 12) 5378344Sobrien echo "Boot interrupted." 5478344Sobrien stop_boot 5578344Sobrien ;; 5678344Sobrien 130) 5778344Sobrien stop_boot 5878344Sobrien ;; 5978344Sobrien *) 6078344Sobrien echo "Unknown error; help!" 6178344Sobrien stop_boot 6278344Sobrien ;; 6378344Sobrien esac 6478344Sobrien fi 6578344Sobrien} 6678344Sobrien 6778344Sobrienload_rc_config $name 6878344Sobrienrun_rc_command "$1" 69