Split fsck during boot into two phases. Check the root file system
[netbsd-mini2440.git] / etc / rc.d / fsck_root
blob8d93502965f48bedd55d46a09690363daa559e9c
1 #!/bin/sh
3 # $NetBSD: fsck,v 1.9 2008/03/02 21:31:30 tron Exp $
6 # PROVIDE: fsck_root
8 $_rc_subr_loaded . /etc/rc.subr
10 name="fsck_root"
11 start_cmd="fsck_root_start"
12 stop_cmd=":"
14 fsck_root_start()
16 if [ -e /fastboot ]; then
17 echo "Fast boot: skipping disk checks."
18 return
20 trap : 2 # Ignore SIGINT, SIGQUIT, so we
21 trap : 3 # enter single-user mode on failure.
23 echo "Starting root file system check:"
24 fsck $fsck_flags /
25 local fsck_error="$?"
26 case $fsck_error in
27 0) # OK
28 return
30 2) # Needs re-run, still fs errors
31 echo "file system still has errors; re-run fsck manually!"
33 4) # Root modified
34 echo "Root filesystem was modified, rebooting ..."
35 reboot
36 echo "Reboot failed; help!"
38 8) # Check failed
39 echo "Automatic file system check failed; help!"
41 12) # Got signal
42 echo "Boot interrupted."
45 echo "Unknown error $fsck_error; help!"
47 esac
48 stop_boot
51 load_rc_config $name
52 run_rc_command "$1"