1 1.2.2.2 jym #!/bin/sh 2 1.2.2.2 jym # 3 1.2.2.2 jym # $NetBSD: fsck_root,v 1.2.2.2 2009/05/13 19:18:03 jym Exp $ 4 1.2.2.2 jym # 5 1.2.2.2 jym 6 1.2.2.2 jym # PROVIDE: fsck_root 7 1.2.2.2 jym 8 1.2.2.2 jym $_rc_subr_loaded . /etc/rc.subr 9 1.2.2.2 jym 10 1.2.2.2 jym name="fsck_root" 11 1.2.2.2 jym start_cmd="fsck_root_start" 12 1.2.2.2 jym stop_cmd=":" 13 1.2.2.2 jym 14 1.2.2.2 jym fsck_root_start() 15 1.2.2.2 jym { 16 1.2.2.2 jym if [ -e /fastboot ]; then 17 1.2.2.2 jym echo "Fast boot: skipping disk checks." 18 1.2.2.2 jym return 19 1.2.2.2 jym fi 20 1.2.2.2 jym trap : 2 # Ignore SIGINT, SIGQUIT, so we 21 1.2.2.2 jym trap : 3 # enter single-user mode on failure. 22 1.2.2.2 jym 23 1.2.2.2 jym echo "Starting root file system check:" 24 1.2.2.2 jym fsck $fsck_flags / 25 1.2.2.2 jym local fsck_error="$?" 26 1.2.2.2 jym case $fsck_error in 27 1.2.2.2 jym 0) # OK 28 1.2.2.2 jym return 29 1.2.2.2 jym ;; 30 1.2.2.2 jym 2) # Needs re-run, still fs errors 31 1.2.2.2 jym echo "file system still has errors; re-run fsck manually!" 32 1.2.2.2 jym ;; 33 1.2.2.2 jym 4) # Root modified 34 1.2.2.2 jym echo "Root filesystem was modified, rebooting ..." 35 1.2.2.2 jym reboot 36 1.2.2.2 jym echo "Reboot failed; help!" 37 1.2.2.2 jym ;; 38 1.2.2.2 jym 8) # Check failed 39 1.2.2.2 jym echo "Automatic file system check failed; help!" 40 1.2.2.2 jym ;; 41 1.2.2.2 jym 12) # Got signal 42 1.2.2.2 jym echo "Boot interrupted." 43 1.2.2.2 jym ;; 44 1.2.2.2 jym *) 45 1.2.2.2 jym echo "Unknown error $fsck_error; help!" 46 1.2.2.2 jym ;; 47 1.2.2.2 jym esac 48 1.2.2.2 jym stop_boot 49 1.2.2.2 jym } 50 1.2.2.2 jym 51 1.2.2.2 jym load_rc_config $name 52 1.2.2.2 jym run_rc_command "$1" 53