D.8. /etc/rc.d/init.d/checkfs
# / Bin / sh
#################################################################### ######################
# Începeți verificările
#
# Descriere: Verificare sistem de fișiere
#
# Autori: Gerard Beekmans - [e-mail protejat]
# A. Luebke - [e-mail protejat]
# DJ Lucas - [e-mail protejat]
# Actualizare: Bruce Dubbs - [e-mail protejat]
#
# Versiune: LFS 7.0
#
# Bazat pe scriptul checkfs de la LFS-3.1 și mai devreme.
#
# De la man fsck
# 0 - Fără erori
# 1 - Erori ale sistemului de fișiere corectate
# 2 - Sistemul ar trebui repornit
# 4 - Erori ale sistemului de fișiere rămase necorectate
# 8 - Eroare operațională
# 16 - Eroare de utilizare sau de sintaxă
# 32 - Fsck anulat la cererea utilizatorului
# 128 - Eroare de bibliotecă partajată
#
####################################################### ########################
### ÎNCEPE INFO INFO
# Oferă: checkfs
# Necesar-Start: udev swap $time
# Ar trebui să înceapă:
# Necesar-Oprire:
# Ar trebui să se oprească:
# Pornire implicită: S
# Oprire implicită:
# Short-Description: Verifică sistemele de fișiere locale înainte de montare.
# Descriere: Verifică sistemele de fișiere locale înainte de montare.
# X-LFS-Furnizat-de: LFS
### END INIT INFO
. /lib/lsb/init-functions cazul „${1}” în
start)
if [ -f /fastboot ]; apoi msg="/fastboot găsit, va omite "
msg="${msg} verificări ale sistemului de fișiere așa cum este solicitat.\n" log_info_msg "${msg}"
iesirea 0
fi
log_info_msg "Se montează sistemul de fișiere rădăcină în modul doar citire... " mount -n -o remount,ro / >/dev/null
dacă [ ${?} != 0 ]; apoi log_failure_msg2 msg="\n\nNu se poate verifica root"
msg="${msg}sistem de fișiere deoarece nu a putut fi montat " msg="${msg}în modul numai citire.\n\n"
msg="${msg}După ce apăsați Enter, acest sistem va fi " msg="${msg} oprit și oprit.\n\n"
log_failure_msg „${msg}”
log_info_msg „Apăsați Enter pentru a continua...” wait_for_user
/etc/rc.d/init.d/halt opriți altfel
log_success_msg2
fi
dacă [ -f /forcefsck ]; apoi msg="/forcefsck găsit, forțând fișierul"
msg="${msg} verificări de sistem conform solicitării." log_success_msg „$msg”
options="-f" altfel
opțiuni=""
fi
log_info_msg „Se verifică sistemele de fișiere...”
# Notă: -o opțiune era -p; dar acest lucru eșuează, de exemplu, pe fsck.minix dacă este_adevărat „$VERBOSE_FSCK”; atunci
fsck ${opțiuni} -a -A -C -T altfel
fsck ${opțiuni} -a -A -C -T >/dev/null
fi error_value=${?}
dacă [ "${error_value}" = 0 ]; apoi log_success_msg2
fi
if [ "${error_value}" = 1 ]; apoi msg="\nAVERTISMENT:\n\nErorile sistemului de fișiere " msg="${msg}au fost găsite și au fost corectate.\n" msg="${msg} Poate doriți să verificați din nou că " msg=" ${msg}totul a fost remediat corect." log_warning_msg „$msg”
fi
if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; apoi msg="\nAVERTISMENT:\n\nErorile sistemului de fișiere " msg="${msg}au fost găsite și au fost " msg="${msg}corectate, dar natura "
msg="${msg}Erorile necesită ca acest sistem să fie repornit.\n\n" msg="${msg}După ce apăsați pe Enter, "
msg="${msg}acest sistem va fi repornit\n\n" log_failure_msg "$msg"
log_info_msg „Apăsați Enter pentru a continua...” wait_for_user
reporniți -f
fi
if [ "${error_value}" -gt 3 -a "${error_value}" -lt 16 ]; apoi msg="\nFAILURE:\n\nErori ale sistemului de fișiere"
msg="${msg}au fost întâlnite care nu au putut fi " msg="${msg}remediate automat.\nAcest sistem " msg="${msg}nu poate continua să pornească și, prin urmare, va " msg="${msg} să fie oprit până când acele " msg="${msg}erori sunt remediate manual de către un " msg="${msg}Administrator de sistem.\n\n"
msg="${msg}După ce apăsați Enter, acest sistem va fi " msg="${msg} oprit și oprit.\n\n"
log_failure_msg „$msg”
log_info_msg „Apăsați Enter pentru a continua...” wait_for_user
/etc/rc.d/init.d/halt stop
fi
if [ "${error_value}" -ge 16 ]; apoi msg="FAILURE:\n\nEșec neașteptat " msg="${msg}executarea fsck. Ieșit cu eroare " msg="${msg} cod: ${error_value}.\n" log_info_msg $msg
ieșire din ${error_value}
fi
*)
ESAC
iesirea 0
;;
echo „Utilizare: ${0} {start}” ieșirea 1
;;
# Încheiați verificările