fsck - sprawdza i naprawia linuksowy system plików
fsck [-lsAVRTMNP] [-r [fd]] [-C
[fd]] [-t typ-systemu-plików]
[system-plików...] [--]
[opcje-zależne-od-syst-pl]
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
- 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 (składni)
- 32
- Sprawdzanie 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 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.
- -l
- Tworzy wyłączny plik blokady flock (w
/run/fsck/<nazwa-dysku>) 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(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.
- -r [fd]
- Wyświetla określone statystyki po zakończeniu
każdego fsck. Na statystyki składają się kod
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
fd; 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 [fd]
- 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 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).
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.
fstab(5), mkfs(8), fsck.ext2(8) lub
fsck.ext3(8) lub e2fsck(8), cramfsck(8),
fsck.minix(8), fsck.msdos(8), fsck.jfs(8),
fsck.nfs(8), fsck.vfat(8), fsck.xfs(8),
reiserfsck(8).
Autorami polskiego tłumaczenia niniejszej strony
podręcznika man są: Wojtek Kotwica (PTM)
<wkotwica@post.pl>, Andrzej M. Krzysztofowicz (PTM)
<ankry@green.mf.pg.gda.pl> i Michał Kułach
<michal.kulach@gmail.com>.
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.28 oryginału.