fsck(8) sprawdza i naprawia linuksowy system plików

SKŁADNIA

fsck [-lsAVRTMNP] [-C [fd]] [-t typ-systemu-plików] [syst-pl...] [--] [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. Syst-pl może być nazwą urządzenia (np. /dev/hdc1, /dev/sdb2), punktem montowania (np. /, /usr, /home), albo etykietą ext2 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.

Kod zakończenia zwracany przez fsck jest sumą następujących warunków:
       0       - Bez 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 (składni)

       32      - Działanie fsck zostało przerwane przez użytkownika

       128     - Błąd biblioteki współdzielonej

Kod zakończenia zwracany, gdy sprawdzane jest kilka systemów plików jest bitową alternatywą (OR) kodó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 pierwszej kolejności w /sbin, następnie w /etc/fs i /etc, a ostatecznie w katalogach wymienionych w zmiennej środowiskowej PATH. 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
Blokuje całe urządzenie dyskowe przez wyłączne flock(2). 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 (8) 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.
-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 e2fsck 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 [ fd ]
Wyświetla wskaźniki zakończenia/postępu dla systemów plików, które je wspierają (aktualnie tylko ext2 i ext3). 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 fd 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 kod 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.
opcje-zależne-od-syst-pl
Opcje nie rozumiane 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 do odmian fsck specyficznych dla danego systemu plików nie są zestandaryzowane. W przypadku wątpliwości, proszę sprawdzić strony podręcznika man danego programu sprawdzającego. Mimo, że nie jest to zagwarantowane, większość programów sprawdzających systemy plików obsługuje poniższe opcje:

-a
Automatycznie naprawia system plików bez zadawania pytań (należy używać tej opcji ostrożnie). Warto zauważyć, że e2fsck(8) obsługuje -a tylko dla zgodności z wcześniejszymi wersjami. Opcja ta została przekształcona na opcję -p polecenia e2fsck, która jest bezpieczna w użyciu, w przeciwieństwie do opcji -a, obsługiwanej przez większość programów sprawdzających systemy plików.
-n
Do niektórych programów, opcja -n zapobiega danej odmianie fsck przeprowadzać próby naprawienia jakichkolwiek problemów, a pozwala jedynie na wyświetlenie informacji o nich na standardowe wyjście. Może nie działać to ze wszystkimi programami specyficznymi dla poszczególnych systemów plików. W szczególności, fsck.reiserfs(8) nie informuje o żadnych błędach, jeśli poda się mu się tę opcję. fsck.minix(8) w ogóle nie obsługuje opcji -n.
-r
Naprawa systemu plików w trybie interaktywnym (z pytaniami o potwierdzenia). Uwaga: na ogół złym pomysłem jest używanie tej opcji podczas równoległego sprawdzania wielu systemów plików. Trzeba też zwrócić uwagę, że jest to domyślne zachowanie e2fsck; polecenie to obsługuje tę opcję tylko z powodu zgodności z wcześniejszymi wersjami.
-y
Do niektórych programów, opcja -n wymusza na danej odmianie fsck przeprowadzanie próby naprawienia jakichkolwiek wykrytych problemów w sposób automatyczny. Niekiedy eksperci są w stanie lepiej poinstruować fsck co należy zrobić. Proszę zauważyć, że nie wszystkie programy specyficzne dla poszczególnych systemów plików posiadają tę opcję zaimplementowaną. W szczególności, fsck.minix(8) i fsck.cramfs(8) w ogóle nie obsługują opcji -y (na chwilę ostatniej aktualizacji oryginału tego podręcznika).

AUTOR

Theodore Ts'o ([email protected])

DOSTĘPNOŚĆ

Polecenie fsck jest częścią pakietu util-linux i jest dostępne pod adresem ftp://ftp.kernel.org/pub/linux/utils/util-linux/.

PLIKI

/etc/fstab.

ZMIENNE ŚRODOWISKOWE

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 służy do poszukiwania programów sprawdzających systemy plików. Pewne katalogi systemowe są przeszukiwane najpierw: /sbin, /sbin/fs.d, /sbin/fs, /etc/fs i /etc. A następnie są przeszukiwane katalogi znajdujące się w zmiennej środowiskowej PATH.
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.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Wojtek Kotwica (PTM) <[email protected]>, Andrzej M. Krzysztofowicz (PTM) <[email protected]> i Michał Kułach <[email protected]>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 2.20.1 oryginału.