void-packages/templates/initscripts/files/rc.d/checkfs
Juan RP a3190ec48c initscripts: misc changes, bump to 2009-03.
--HG--
extra : convert_revision : 97fb9127cb91659331f1574a19a8871fed30a0ab
2009-03-26 10:07:50 +01:00

67 lines
1.4 KiB
Bash
Executable file

#!/bin/sh
#
# PROVIDE: checkfs
# REQUIRE: SERVERS
# BEFORE: NETWORKING
$_rc_subr_loaded . /etc/rc.subr
name="checkfs"
start_cmd="checkfs_start"
stop_cmd=":"
NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs"
NETFS="$NETFS,nofuse,nofuseblk"
checkfs_start()
{
echo -n "Mounting root read-only... "
mount -n -o remount,ro /
show_rval
FORCEFSCK=
[ -f /forcefsck ] && FORCEFSCK="-- -f"
echo "Checking local filesystems... "
fsck -A -T -C -a -t $NETFS $FORCEFSCK 2>/dev/null
fsckret=$?
echo
if [ ${fsckret} -gt 1 ]; then
echo "failed!"
if [ $((${fsckret}&2)) -eq 2 ]; then
echo
echo "************** REBOOT REQUIRED *************"
echo
echo " The system will be rebooted automatically"
echo " in 5 seconds."
echo
echo "********************************************"
echo
sleep 5
else
echo
echo "********* FILESYSTEM CHECK FAILED ************"
echo
echo " Please repair manually and reboot. Note that"
echo " the root filesystem is currently mounted"
echo " read-only. To remount it read-write type:"
echo
echo " mount -n -o remount,rw /"
echo
echo " When you exit the maintenance shell the system"
echo " will reboot automatically."
echo
echo "************************************************"
echo
sulogin -p
fi
echo "Automatic reboot in progress..."
umount -a
mount -n -o remount,ro /
reboot -f
exit 0
fi
}
load_rc_config $name
run_rc_command "$1"