93 lines
2.5 KiB
Bash
Executable File
93 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
# checkfs - File System Check
|
|
|
|
# Based on checkfs script from LFS-3.1 and earlier.
|
|
# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org
|
|
# Patch to handle all fsck variants by A. Luebke - luebke@users.sourceforge.net
|
|
|
|
. /etc/sysconfig/rc
|
|
. $rc_functions
|
|
|
|
if [ -f /fastboot ]; then
|
|
echo "Fast boot requested, will not perform file system checks"
|
|
exit 0
|
|
fi
|
|
|
|
echo -n "Mounting root file system in read-only mode: "
|
|
mount -n -o remount,ro /
|
|
retval=$?
|
|
|
|
if [ $retval != 0 ]; then
|
|
$FAILURE
|
|
echo
|
|
echo "Cannot check root file system because it could not"
|
|
echo "be mounted in read-only mode."
|
|
echo
|
|
echo -n "When you press enter, this system will be halted."
|
|
$NORMAL
|
|
echo
|
|
echo "Press enter to continue..."
|
|
read ans
|
|
echo "gonna run: $rc_base/init.d/halt"
|
|
$rc_base/init.d/halt
|
|
fi
|
|
|
|
echo_success
|
|
echo
|
|
|
|
if [ -f /forcefsck ]; then
|
|
echo "/forcefsck exists, forcing file system check"
|
|
options="-f"
|
|
else
|
|
options=""
|
|
fi
|
|
|
|
echo -n "Checking file systems: "
|
|
$PLYMOUTH message --text=$"Checking file systems..."
|
|
|
|
# note: -a option used to be -p; but this fails e.g. on fsck.minix
|
|
fsck $options -a -A -C -T
|
|
retval=$?
|
|
|
|
if [ $retval -eq 0 ]; then
|
|
$PLYMOUTH message --text=$"Checking file systems...done"
|
|
echo_success
|
|
echo
|
|
elif [ $retval -eq 1 ]; then
|
|
$WARNING
|
|
echo "File system errors were found and have been corrected."
|
|
echo "You may want to double-check that everything was fixed"
|
|
echo -n "properly"
|
|
$NORMAL
|
|
$PLYMOUTH message --text=$"Checking file systems...fixed"
|
|
echo_warning
|
|
echo
|
|
elif [ $retval -eq 2 ]; then
|
|
$WARNING
|
|
echo "File system errors were found and have been corrected, but"
|
|
echo "the nature of the errors require this system to be rebooted."
|
|
$NORMAL
|
|
$PLYMOUTH message --text=$"Checking file systems...rebooting"
|
|
echo_warning
|
|
echo
|
|
$rc_base/init.d/reboot
|
|
elif [ $retval -eq 4 ]; then
|
|
$WARNING
|
|
echo "File system errors were encountered that couldn't be"
|
|
echo "fixed automatically. The system will continue to boot but"
|
|
echo "errors need to be fixed manually by a system administrator."
|
|
$NORMAL
|
|
$PLYMOUTH message --text=$"Checking file systems...unfixable errors"
|
|
echo_warning
|
|
echo
|
|
elif [ "$retval" -gt 4 ]; then
|
|
$FAILURE
|
|
echo "An internal error was encountered while checking file systems."
|
|
echo "This system will continue to boot but errors need to be fixed"
|
|
echo "by a system administrator."
|
|
$NORMAL
|
|
$PLYMOUTH message --text=$"Checking file systems...operational error!"
|
|
echo_warning
|
|
echo
|
|
fi
|