From cbafa84f5cf4d8972ca67b207f8bfbb98af90f03 Mon Sep 17 00:00:00 2001 From: Renato Botelho Date: Thu, 12 Jan 2017 11:43:54 -0200 Subject: Ticket #6340: - Stop misusing fsck -F parameter, it's supposed to be used when you plan to run background fsck after filesystems are mounted, what is not the case on pfSense - Increase attempts to mount all filesystems as read-write to 10 - If we cannot mount filesystems as read-write, start a recovery shell and after it finishes, reboot system --- src/etc/rc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/etc') diff --git a/src/etc/rc b/src/etc/rc index de61733..275cbd8 100755 --- a/src/etc/rc +++ b/src/etc/rc @@ -99,12 +99,12 @@ fi if [ -e /root/force_fsck ]; then echo "Forcing filesystem(s) check..." - /sbin/fsck -y -F -t ufs + /sbin/fsck -y -t ufs fi if [ "${PLATFORM}" != "cdrom" ]; then FSCK_ACTION_NEEDED=0 - /sbin/fsck -p -F + /sbin/fsck -p case $? in 0) echo "Filesystems are clean, continuing..." @@ -122,19 +122,25 @@ if [ "${PLATFORM}" != "cdrom" ]; then if [ ${FSCK_ACTION_NEEDED} = 1 ]; then echo "WARNING: Trying to recover filesystem from inconsistency..." - /sbin/fsck -yF + /sbin/fsck -y -t ufs fi /sbin/mount -a 2>/dev/null mount_rc=$? attempts=0 - while [ ${mount_rc} -ne 0 -a ${attempts} -lt 3 ]; do - /sbin/fsck -yF + while [ ${mount_rc} -ne 0 -a ${attempts} -lt 10 ]; do + /sbin/fsck -y -t ufs /sbin/mount -a 2>/dev/null mount_rc=$? attempts=$((attempts+1)) done + if [ ${mount_rc} -ne 0 ]; then + echo "ERROR: Impossible to mount filesystem, use interactive shell to attempt to recover it" + /bin/sh + /sbin/reboot + fi + if [ "${PLATFORM}" = "nanobsd" ]; then # XXX This script does need all filesystems rw!!!! # Put this workaround for now until better ways are found. -- cgit v1.1