FSCK(8)

NAZWA
fsck - sprawdza i naprawia linuksowy system plików

SKŁADNIA

fsck [-lsAVRTMNP] [-r [deskr-pl]] [-C [deskr-pl]] [-t typ-systemu-plików] [system-plików...] [--] [opcje-zależne-od-syst-pl]

OPIS

fsck służy do sprawdzania i, opcjonalnie, do naprawy jednego lub kilku linuksowych systemów plików. System-plików może być nazwą urządzenia (np. /dev/hdc1, /dev/sdb2), punktem montowania (np. /, /usr, /home), albo etykietą systemu plików lub identyfikatorem UUID (np. UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd lub LABEL=root). W celu skrócenia łącznego czasu potrzebnego do sprawdzenia wszystkich systemów plików, program fsck będzie usiłował sprawdzać równolegle systemy plików umieszczone na fizycznie różnych napędach dysków.

Jeśli nie określono systemu plików w wierszu poleceń, ani nie użyto opcji -A, fsck domyślnie sprawdzi po kolei systemy plików z /etc/fstab. Jest to odpowiednik opcji -As.

Status zakończenia zwracany przez fsck jest sumą następujących warunków:

0
    Brak błędów

1
    Poprawiono błędy systemu plików

2
    System powinien zostać przeładowany (reboot)

4
    Pozostawiono nienaprawione błędy systemu plików

8
    Błąd działania

16
    Błąd użycia lub składni

32
    Sprawdzanie zostało przerwane przez użytkownika

128
    Błąd biblioteki współdzielonej

Status zakończenia zwracany, gdy sprawdzane jest kilka systemów plików jest bitową alternatywą (OR) statusów zakończenia dla każdego ze sprawdzanych systemów plików.

W rzeczywistości fsck jest po prostu interfejsem dla różnych programów sprawdzających dostępne w Linuksie systemy plików (fsck.typ-systemu-plików). Poszukiwanie programu specyficznego dla danego systemu plików odbywa się w zmiennej środowiskowej PATH. Jeśli PATH jest niezdefiniowana, przeszukiwane jest /sbin.

Więcej szczegółów można znaleźć na stronach podręcznika programów sprawdzających właściwych dla poszczególnych systemów plików.

OPCJE

-l
    Tworzy wyłączny plik blokady flock(2) (w /run/fsck/<nazwa-dysku>.lock) dla całego urządzenia dyskowego. Opcja może być użyta wyłącznie z jednym urządzeniem (co oznacza, że opcje -A i -l wykluczają się wzajemnie). Zaleca się użycie tej opcji, gdy uruchomione jest kilka kopii fsck w tym samym czasie. Opcja jest ignorowana, gdy zostanie użyta w stosunku do wielu urządzeń lub w odniesieniu do dysków nieobrotowych. Program fsck nie blokuje niższej warstwy urządzeń, gdy jest wykonywany na urządzeniach typu "stacked" (np. MD - tzw. RAID programowy lub DM - device mapper) - ta funkcja nie została jeszcze zaimplementowana.

-r [deskr-pl]
    Wyświetla określone statystyki po zakończeniu każdego fsck. Na statystyki składają się: status zakończenia, maksymalny rozmiar uruchomionego zestawu (w kilobajtach), czas jaki upłynął i czas procesora dla użytkownika i systemu użyty przez przebieg fsck, np.:

    /dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186

    Interfejsy GUI mogą podać deskryptor pliku deskr-pl; w takim przypadku pasek postępu będzie przesyłany do tego deskryptora w formacie przetwarzalnym maszynowo, np.

    /dev/sda1 0 92828 4.002804 2.677592 0.86186

-s
    Wykonuje operacje fsck kolejno, szeregowo. Jest to dobre podejście, jeśli sprawdzanych jest wiele systemów plików, a programy sprawdzające działają w trybie interaktywnym. (Uwaga: e2fsck(8) domyślnie działa w trybie interaktywnym. By uruchomić e2fsck(8) w trybie nieinteraktywnym, trzeba podać opcję -p lub -a, gdy błędy mają być naprawiane automatycznie, albo opcję -n, gdy nie mają być naprawiane).

-t lista-syst-pl
    Określa typ(y) sprawdzanego(ych) systemu(ów) plików. Jeśli podano opcję -A, to sprawdzane będą tylko te systemy plików, które pasują do listy lista-syst-pl. Parametr lista-syst-pl stanowi rozdzieloną przecinkami listę systemów plików oraz podanych opcji. Dowolny z systemów plików na tej liście może być poprzedzony operatorem negacji "no" lub "!", co oznacza sprawdzanie wyłącznie systemów plików nie występujących na liście lista-syst-pl. Jeśli żaden z systemów plików w lista-syst-pl nie zostanie poprzedzony operatorem negacji, to sprawdzane będą wyłącznie systemy plików występujące na liście lista-syst-pl.

    Na rozdzielonej przecinkami liście lista-syst-pl mogą również występować podane opcje. Muszą one mieć postać opts=opcja-syst-pl, i mogą być poprzedzone operatorem negacji. Jeśli na liście występuje podana opcja, to będą sprawdzane tylko te systemy plików, których wpis w /etc/fstab zawiera (lub nie zawiera, gdy podana opcja została poprzedzona operatorem negacji) opcję opcja-syst-pl w odpowiednim polu pliku /etc/fstab.

    Na przykład, jeśli opts=ro pojawi się w liscie-syst-pl, to tylko systemy plików z pliku /etc/fstab, posiadające opcję ro będą sprawdzone.

    Dla zgodności z dystrybucją Mandrake, w której skrypty startowe uzależnione są od nieautoryzowanej zmiany interfejsu użytkownika programu fsck, gdy typem systemu plików jest loop, to jest to traktowane tak, jakby podano opts=loop jako argument opcji -t.

    Zwykle, typ systemu plików można określić wyszukując dany system plików syst-pl w pliku /etc/fstab i korzystając z odpowiedniego wpisu. Jeżeli nie da się go określić, a podano jako argument opcji -t pojedynczy system plików, to fsck użyje typu wyznaczonego przez tę opcję. Jeżeli typ ten nie jest dostępny, to używany jest typ domyślny (obecnie ext2).

-A
    Przechodzi przez plik /etc/fstab i próbuje sprawdzić wszystkie systemy plików w jednym przebiegu. Opcja ta jest najczęściej wykorzystywana przez plik startowy /etc/rc, zamiast wielu poleceń sprawdzających pojedyncze systemy plików.

    Główny system plików zostanie sprawdzony jako pierwszy, chyba że podano opcję -P (patrz poniżej). Następnie będą sprawdzane systemy plików w kolejności określonej przez liczbę występującą w polu fs_passno (szóstym) pliku /etc/fstab. Systemy plików z wartością fs_passno wynoszącą 0 będą pomijane i w ogóle nie będą sprawdzane. Systemy plików z wartością fs_passno większą od zera będą sprawdzane w kolejności rosnącej, tzn. systemy plików z mniejszą wartością fs_passno będą sprawdzane wcześniej. Jeżeli istnieje kilka systemów plików o tym samym numerze przejścia, to fsck będzie usiłował sprawdzić je równolegle, jednakże będzie unikał jednoczesnego sprawdzania wielu systemów plików na tym samym dysku fizycznym.

    Program fsck nie sprawdza urządzeń typu "stacked" (RAID, dm-crypt, ...) równolegle z żadnym innym urządzeniem. Patrz też niżej ustawienie FSCK_FORCE_ALL_PARALLEL. System plików /sys jest używany do poznania zależności między urządzeniami.

    Stąd też, bardzo powszechną konfiguracją w /etc/fstab jest ustawienie dla głównego systemu plików pola fs_passno o wartości 1, zaś dla wszystkich pozostałych systemów plików przypisanie fs_passno wartości 2. Pozwoli to fsck na automatyczne równoległe uruchamianie programów sprawdzających systemy plików, jeżeli tylko było by to korzystne. Administratorzy systemów mogą zrezygnować z używania takiej konfiguracji jeśli z jakiegoś powodu chcą uniknąć równoległego sprawdzania systemów plików - na przykład, jeśli dany komputer niewiele pamięci, tak że problemem jest intensywne zastępowanie stron pamięci (paging).

    Program fsck zwykle nie sprawdza, czy urządzenie rzeczywiście istnieje, przed wywołaniem właściwego programu sprawdzającego dany system plików. W związku z tym, nieistniejące urządzenia mogą spowodować wejście systemu w tryb naprawy systemu plików podczas uruchamiania systemu, jeśli jeden z właściwych danemu systemowi plików programów sprawdzających, zwróci błąd krytyczny. Opcja montowania nofail pliku /etc/fstab może zostać użyta, aby wymusić pomijanie nieistniejących urządzeń przez fsck. Program fsck pomija również nieistniejące urządzenia, które mają specjalny typ systemu plików auto.

-C [deskr-pl]
    Wyświetla wskaźniki zakończenia/postępu dla systemów plików, które je wspierają (aktualnie tylko ext[234]). fsck będzie tak sterować programami sprawdzającymi systemy plików, aby tylko jeden z nich wyświetlał wskaźnik postępu w danej chwili. Interfejsy graficzne mogą podać deskryptor pliku deskr-pl i w takim przypadku informacje paska postępu zostaną wysłane do owego deskryptora.

-M
    Nie sprawdza zamontowanych systemów plików i zwraca dla nich status zakończenia równy zero.

-N
    Nie wykonuje operacji, jedynie pokazuje co byłoby wykonane.

-P
    Jeśli włączona jest opcja -A, to sprawdza główny system plików równolegle ze sprawdzaniem innych systemów. Nie jest to najbezpieczniejsza czynność pod słońcem, jaką można wykonać, ponieważ jeśli główny system plików jest wątpliwy, to nawet plik binarny e2fsck(8) może być uszkodzony! Opcja ta jest przeznaczona głównie dla tych administratorów systemów, którzy nie chcą partycjonować ponownie głównego systemu plików, tak by był mały i zwarty (co jest tak naprawdę poprawnym rozwiązaniem).

-R
    Podczas sprawdzania wszystkich systemów plików z opcją -A, omija główny system plików (przydatne w przypadku, gdy jest on już zamontowany do odczytu/zapisu).

-T
    Nie pokazuje tytułu przy starcie.

-V
    Wyświetla informacje w trybie szczegółowym, łącznie ze wszystkimi wykonywanymi poleceniami specyficznymi dla poszczególnych systemów plików.

-?, --help
    Wyświetla ten tekst i wychodzi.

--version
    Wyświetla informacje o wersji i kończy działanie.

OPCJE MONTOWANIA SPECYFICZNE DLA RÓŻNYCH SYSTEMÓW PLIKÓW

Opcje nierozumiane przez fsck są przekazywane programowi sprawdzającemu, specyficznemu dla danego systemu plików!

Parametry te nie mogą zawierać własnych argumentów, gdyż fsck nie ma możliwości rozpoznania, które z parametrów posiadają argumenty, a które nie.

Dowolne opcje występujące po -- są traktowane jako opcje specyficzne dla danego systemu plików, które mają zostać przekazane do odpowiedniego programu sprawdzającego ten system plików.

Proszę zauważyć, że fsck nie został zaprojektowany w celu przekazywania dowolnie skomplikowanych opcji do programów sprawdzających specyficznych dla poszczególnych systemów plików. Jeśli istnieje potrzeba zrobienia czegoś skomplikowanego, proszę po prostu bezpośrednio uruchomić właściwy dla danego systemu plików program sprawdzający. Jeśli programowi fsck zostanie przekazana niezmiernie skomplikowana opcja wraz z argumentami i program nie uczyni tego, czego się spodziewano, to nie należy nikomu zawracać głowy zgłaszaniem tego jako błędu. Prawie na pewno robi się wówczas coś, czego nie należy robić za pomocą fsck. Opcje specyficzne dla poszczególnych systemów plików nie są zestandaryzowane.

ŚRODOWISKO

Na zachowanie programu fsck mają wpływ następujące zmienne środowiskowe:

FSCK_FORCE_ALL_PARALLEL
    Jeśli ta zmienna jest ustawiona, fsck będzie próbował uruchomić równolegle programy sprawdzające wszystkie podane systemy plików, niezależnie od tego, czy systemy plików znajdują się na tym samym, czy na różnych urządzeniach. (Jest to przydatne w przypadku systemów RAID lub wysokiej klasy systemów pamięci masowej, jak np. sprzedawane przez firmy takie, jak IBM czy EMC). Proszę zauważyć, że wartość fs_passno jest wciąż używana.

FSCK_MAX_INST
    Ta zmienna środowiskowa ogranicza maksymalną liczbę uruchamianych jednocześnie programów sprawdzających systemy plików. W przypadku konfiguracji zawierających dużą liczbę dysków, pozwala to uniknąć jednoczesnego uruchamiania przez fsck zbyt wielu programów sprawdzających, co mogłoby przeciążyć dostępne w systemie zasoby procesorów i pamięci. Wartość zero pozwala na nieograniczone mnożenie się procesów. Jest to aktualnie zachowanie domyślne, jednakże przyszłe wersje fsck mogą próbować automatycznie określać ilość jednoczesnych sprawdzań systemów plików na podstawie zgromadzonych przez system operacyjny danych ewidencyjnych.

PATH
    Zmienna środowiskowa PATH jest używana do znalezienia podprogramów do konkretnych systemów plików.

FSTAB_FILE
    Ta zmienna środowiskowa pozwala administratorowi systemu zmianę standardowego położenia pliku /etc/fstab. Służy ona również osobom rozwijającym program, do testowania fsck.

LIBBLKID_DEBUG=all
    włącza wyjście debugowania libblkid.

LIBMOUNT_DEBUG=all
    włącza wyjście debugowania libmount.

PLIKI

/etc/fstab

UWAGI

Podczas rozruchu, systemd nie wywołuje fsck -A. Zamiast tego, planuje indywidualną aktywację montowań, biorąc pod uwagę zależności od powiązanych urządzeń, sieci i innych czynników. Co za tym idzie, fsck jest wywoływany oddzielnie dla każdego urządzenia.

AUTORZY

ZOBACZ TAKŻE

fstab(5), mkfs(8), fsck.ext2(8) or fsck.ext3(8) or e2fsck(8), fsck.cramfs(8), fsck.jfs(8), fsck.nfs(8), fsck.minix(8), fsck.msdos(8), fsck.vfat(8), fsck.xfs(8), reiserfsck(8)

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie fsck jest częścią pakietu util-linux, który można pobrać ze strony