<Poprzedni | Spis treści | Następne>
D.8. /etc/rc.d/init.d/checkfs
#! / Bin / sh
################################################## ######################
# Rozpocznij sprawdzanie
#
# Opis: Sprawdzanie systemu plików
#
# Autorzy: Gerard Beekmans - [email chroniony]
#A.Liebke – [email chroniony]
#Dj Lucas – [email chroniony]
# Aktualizacja: Bruce Dubbs - [email chroniony]
#
# Wersja: LFS 7.0
#
# Na podstawie skryptu checkfs z LFS-3.1 i wcześniejszych.
#
# Z man fsck
# 0 - Brak błędów
# 1 - Poprawiono błędy systemu plików
# 2 - System powinien zostać zrestartowany
# 4 - Błędy systemu plików pozostały nieskorygowane
#8 – Błąd operacyjny
# 16 - Błąd użycia lub składni
# 32 - Fsck anulowane na żądanie użytkownika
# 128 - Błąd biblioteki współdzielonej
#
################################################### #########################
### POCZĄTEK INFORMACJI POCZĄTKOWEJ
# Zapewnia: checkfs
# Wymagany start: udev swap $time
# Powinno się rozpocząć:
# Wymagane zatrzymanie:
# Powinieneś przestać:
# Domyślnie-Start: S
# Domyślne zatrzymanie:
# Krótki opis: Sprawdza lokalne systemy plików przed zamontowaniem.
# Opis: Sprawdza lokalne systemy plików przed zamontowaniem.
# X-LFS-Dostarczone przez: LFS
### KONIEC INIT INFO
. /lib/lsb/init-functions przypadek "${1}" w
początek)
jeśli [ -f /fastboot ]; następnie msg="/fastboot found, pominie "
msg="${msg} sprawdza system plików zgodnie z żądaniem.\n" log_info_msg "${msg}"
wyjście 0
fi
log_info_msg "Montowanie głównego systemu plików w trybie tylko do odczytu..." mount -n -o remount,ro / >/dev/null
jeśli [ ${?} != 0 ]; następnie log_failure_msg2 msg="\n\nNie można sprawdzić katalogu głównego "
msg="${msg}system plików, ponieważ nie można go zamontować " msg="${msg}w trybie tylko do odczytu.\n\n"
msg="${msg}Po naciśnięciu Enter system zostanie " msg="${msg}zatrzymany i wyłączony.\n\n"
log_failure_msg "${msg}"
log_info_msg "Naciśnij Enter, aby kontynuować..." wait_for_user
/etc/rc.d/init.d/halt zatrzymaj jeszcze
log_success_msg2
fi
jeśli [ -f /forcefsck ]; następnie msg="/forcefsck znaleziony, wymuszanie pliku"
msg="${msg} sprawdza system zgodnie z żądaniem." log_success_msg "$msg"
opcje="-f" jeszcze
opcje=""
fi
log_info_msg "Sprawdzanie systemów plików..."
# Uwaga: -opcją było kiedyś -p; ale to kończy się niepowodzeniem, np. w fsck.minix, jeśli is_true "$VERBOSE_FSCK"; Następnie
fsck ${opcje} -a -A -C -T jeszcze
fsck ${opcje} -a -A -C -T >/dev/null
fi wartość_błędu=${?}
if [ "${wartość_błędu}" = 0 ]; następnie log_success_msg2
fi
if [ "${wartość_błędu}" = 1 ]; następnie msg="\nOSTRZEŻENIE:\n\nZnaleziono błędy systemu plików " msg="${msg} i zostały poprawione.\n" msg="${msg} Możesz to jeszcze raz sprawdzić " msg=" ${msg}wszystko zostało naprawione poprawnie.” log_warning_msg "$msg"
fi
if [ "${wartość_błędu}" = 2 -o "${wartość_błędu}" = 3 ]; następnie msg="\nOSTRZEŻENIE:\n\nBłędy systemu plików " msg="${msg}zostały znalezione i zostały " msg="${msg}poprawione, ale charakter "
msg="${msg}Błędy wymagają ponownego uruchomienia systemu.\n\n" msg="${msg}Po naciśnięciu Enter, "
msg="${msg}ten system zostanie ponownie uruchomiony\n\n" log_failure_msg "$msg"
log_info_msg "Naciśnij Enter, aby kontynuować..." wait_for_user
uruchom ponownie -f
fi
if [ "${wartość_błędu}" -gt 3 -a "${wartość_błędu}" -lt 16 ]; następnie msg="\nBŁĄD:\n\nBłędy systemu plików "
msg="${msg}wystąpiły problemy, których nie można było " msg="${msg}naprawić automatycznie.\nTen system " msg="${msg}nie może kontynuować rozruchu i dlatego " msg="${msg} zostać wstrzymane do czasu, aż te " msg="${msg}błędy zostaną naprawione ręcznie przez " msg="${msg}administratora systemu.\n\n"
msg="${msg}Po naciśnięciu Enter system zostanie " msg="${msg}zatrzymany i wyłączony.\n\n"
log_failure_msg "$msg"
log_info_msg "Naciśnij Enter, aby kontynuować..." wait_for_user
/etc/rc.d/init.d/halt zatrzymaj
fi
if [ "${wartość_błędu}" -ge 16 ]; następnie msg="FAILURE:\n\nNieoczekiwany błąd " msg="${msg}uruchamianie fsck. Zakończono z błędem " msg="${msg} code: ${error_value}.\n" log_info_msg $msg
zakończ ${wartość_błędu}
fi
*)
to C
wyjście 0
;;
echo "Użycie: ${0} {start}" exit 1
;;
# Zakończ kontrole