E2FSCK(8)

NAZWA
e2fsck - sprawdza linuksowy system plików ext2/ext3/ext4

SKŁADNIA
e2fsck [ -pacnyrdfkvtDFV ] [ -b superblok ] [ -B rozmiar-bloku ] [ -l|-L plik-złych-bloków ] [ -C fd ] [ -j zewnętrzny-dziennik ] [ -E opcje-rozszerzone ] [ -z plik_zapasowy ] urządzenie

OPIS
e2fsck jest używany do sprawdzania rodziny systemów plików ext2/ext3/ext4. W przypadku systemów plików ext3 i ext4 używających dziennika, jeśli system zostanie nieprawidłowo zamknięty bez wystąpienia błędów, po odtworzeniu transakcji wprowadzonych do dziennika, system plików powinien zostać zwykle oznaczony jako czysty. Z tego powodu, w systemach plików używających dziennika, e2fsck zwykle odtworzy go i wyjdzie, chyba że superblok danego systemu plików wskazuje, że konieczne są dalsze sprawdzenia.

Urządzenie jest urządzeniem blokowym (np. /dev/sdc1) lub plikiem zawierającym system plików.

Proszę zauważyć, że uruchamianie e2fsck na zamontowanym systemie plików generalnie nie jest bezpieczne. Jedynym wyjątkiem jest sytuacja, gdy podano opcję -n, ale nie użyto -c, -l ani -L. Jednak nawet gdy takie działanie jest bezpieczne, wyniki wypisane przez e2fsck nie są prawidłowe, jeśli system plików jest zamontowany. Jeśli e2fsck pyta czy należy sprawdzić zamontowany system plików, jedyną poprawną odpowiedzią jest „nie”. Jedynie eksperci, którzy rzeczywiście wiedzą co robią, mogą zastanowić się nad inną odpowiedzią w takim wypadku.

Jeśli If e2fsck uruchomiono w trybie interaktywnym (tzn. nie podano opcji -y, -n ani -p), to program będzie pytał użytkownika przy naprawianiu każdego napotkanego w systemie plików problemu. Odpowiedź y naprawi błąd, n pozostawi problem bez naprawy, a a naprawi wskazany błąd i wszystkie kolejne. Klawisz Enter zatwierdzi domyślną odpowiedź, wyświetloną przed znakiem zapytania. Kombinacja Control-C natychmiast przerwie działanie programu.

OPCJE

-a  Ta opcja robi to samo co opcja -p. Jest udostępniana jedynie ze względu na kompatybilność wstecz; zaleca się używanie -p wszędzie tam, gdzie to możliwe.

-b superblok
    Zamiast używać normalnego superbloku, używa innego, podanego jako superblok. Ta opcja używana jest, gdy podstawowy superblok został uszkodzony. Położenie kopii zapasowej superbloku zależne jest od rozmiaru bloku w danym systemie plików, liczby bloków na grupę i funkcji takich jak sparse_super.

    Położenie dodatkowej kopii zapasowej superbloku może być określone poprzez użycie programu mke2fs z opcją -n wypisującą położenia superbloków, przy założeniu, że programowi mke2fs podano argumenty spójne z charakterystyką danego systemu plików (np. rozmiarem bloku, liczbą bloków na grupę, sparse_super itd.)

    Jeżeli podany jest alternatywny superblok, a system plików nie jest otwarty w trybie tylko do odczytu, e2fsck sprawdzi, czy podstawowy superblok jest uaktualniony.

-B rozmiar-bloku
    Normalnie, e2fsck szuka superbloku w zmienianych rozmiarach bloku i próbuje znaleźć rozmiar odpowiedni. Ta technika czasem daje się ogłupić. Dlatego opcja ta wymusza na e2fsck wyszukiwanie superbloków o określonej wielkości bloku. Jeśli superblok nie zostanie znaleziony, e2fsck zakończy działanie z błędem krytycznym.

-c  Opcja ta powoduje, że e2fsck uruchamia program badblocks(8) w celu znalezienie uszkodzonych bloków systemu plików przy użyciu skanowania odczytu. Bloki takie są następnie zaznaczane poprzez dodawanie ich do i-węzła uszkodzonych bloków. Jeżeli opcja ta podana jest dwa razy, wtedy uszkodzone bloki będą poszukiwane przy użyciu niedestruktywnego testu odczytu i zapisu.

-C fd
    Ta opcja powoduje, że e2fsck wypisze kompletną informację do podanego deskryptoru pliku. Dzięki temu postęp sprawdzania systemu plików może być kontrolowany. Ta opcja jest używana przede wszystkim przez programy uruchamiające e2fsck. Jeśli liczba deskryptora pliku jest ujemna, to używana jest wartość bezwzględna z deskryptora pliku, a wyjście jest początkowo wyłączone. Można je później włączyć, wysyłając procesowi e2fsck sygnał SIGUSR1. Jeżeli jako deskryptor pliku podane jest 0, e2fsck wypisze pasek postępu w swoim stylu. To wymaga, aby e2fsck uruchomiony był na konsoli lub na terminalu.

-d  Wypisuje wyjście debugowania (bezużyteczne, chyba że używane przy debugowaniu e2fsck).

-D  Optymalizuje katalogi w systemie plików. Ta opcja powoduje, że e2fsck próbuje zoptymalizować wszystkie katalogi albo ponownie je indeksując (jeśli system plików obsługuje indeksowanie katalogów), albo sortując i kompresując katalogi (przy mniejszych katalogach, lub w systemach plików używających tradycyjnych, liniowych katalogów).

    Nawet bez opcji -D, e2fsck może niekiedy optymalizować część katalogów - np. jeśli indeksowanie katalogów jest włączone, a katalogi nie zostały zindeksowane i mogą odnieść korzyści z tej operacji, albo jeśli struktury indeksowania są uszkodzone i muszą zostać odbudowane. Opcja -D wymusza zoptymalizowanie wszystkich katalogów w systemie plików. Niekiedy może to sprawić, że będą nieco mniejsze i trochę szybsze w przeszukiwaniu, ale w praktyce, rzadko kiedy jest sens stosować tę opcję.

    Opcja -D wykryje wpisy katalogowe ze zduplikowanymi nazwami w pojedynczym katalogu, czego e2fsck normalnie nie wymusza ze względów wydajnościowych.

-E opcje-rozszerzone
    Ustawia rozszerzone opcje e2fsck. Opcje rozszerzone są oddzielone przecinkami i mogą przyjmować argument za pomocą znaku równości („=”). Obsługiwane są następujące opcje:

    ea_ver=wersja-atrybutów-rozszerzonych
        Ustawia wersję rozszerzonych atrybutów bloków, które e2fsck wymaga do sprawdzania systemu plików. Numerem wersji może być 1 lub 2. Domyślnym formatem rozszerzonych atrybutów jest 2.

    journal_only
        Jeśli to wymagane, odtwarza wyłącznie dziennik, ale nie przeprowadza żadnych dalszych sprawdzeń lub napraw.

    fragcheck
        Podczas pierwszego przebiegu, wypisuje szczegółowe sprawozdanie o wszystkich nieciągłych blokach plików, znalezionych w systemie plików.

    discard
        Próbuje wyczyścić wolne bloki i nieużywane i-węzły po pełnym sprawdzeniu systemu plików (użyteczne na dyskach SSD i urządzeniach zapisujących „z dziurami” (sparse) lub alokujących dane elastycznie (thin-provisioned)). Proszę zauważyć, że ta operacja jest przeprowadzana w przebiegu piątym, PO pełnym sprawdzeniu systemu plików i tylko, jeśli nie zawiera on rozpoznawalnych błędów. Może się jednak zdarzyć, że e2fsck nie rozpozna problemu w pełni i wówczas użycie tej opcji może uniemożliwić późniejsze, ręczne odzyskiwanie danych.

    nodiscard
        Nie próbuje wyczyścić wolnych bloków i nieużywanych bloków i-węzłów. Ta opcja jest dokładnym przeciwieństwem opcji discard. Jest ustawiona jako domyślna.

    no_optimize_extents
        Nie oferuje optymalizacji drzewa ekstentów poprzez jego spłycenie lub zawężenie w możliwym zakresie. Można to również włączyć w sekcji opcji pliku /etc/e2fsck.conf.

    optimize_extents
        Oferuje optymalizację drzewa ekstentów poprzez jego spłycenie lub zawężenie w możliwym zakresie. Jest to zachowanie domyślne, chyba że ustawiono inaczej w pliku /etc/e2fsck.conf.

    inode_count_fullmap
        Zwiększa szybkość przy sprawdzaniu systemu plików z dużą liczbą plików z dowiązaniami twardymi kosztem zwiększonego użycia pamięci. Ilość wymaganej pamięci jest proporcjonalna do liczby i-węzłów w systemie plików. W przypadku dużych systemów plików, mogą być to gigabajty (np. system plików o wielkości 40 TB, z 2,8 miliardami i-węzłów, po włączeniu tej optymalizacji pochłonie dodatkowo 5,7 GB pamięci). Tę optymalizację można również włączyć w sekcji opcji pliku /etc/e2fsck.conf.

    no_inode_count_fullmap
        Wyłącza optymalizację inode_count_fullmap. Jest to zachowanie domyślne, chyba że ustawiono inaczej w pliku /etc/e2fsck.conf.

    readahead_kb
        Używa podanej wielkości pamięci w KiB, do wstępnego pobrania metadanych, co powinno skrócić czas działania programu e2fsck. Domyślną wielkością jest rozmiar dwóch grup bloków tablic i-węzłów (zwykle 4 MiB w typowym systemie plików ext4); jeśli ta wielkość wynosi więcej niż 1/50 całkowitego rozmiaru pamięci fizycznej, readahead jest wyłączane. Wartość zerowa całkowicie wyłączy readahead.

    bmap2extent
        Przekształca pliki z plików opisywanych blokami na pliki opisywane ekstentami.

    fixes_only
        Naprawia wyłącznie uszkodzone metadane, nie optymalizuje katalogów h-drzewa ani nie kompresuje drzew ekstentów. Opcja ta jest niekompatybilna z opcjami -D i -E bmap2extent.

    check_encoding
        Wymusza weryfikację nazw plików w katalogach niewrażliwych na wielkość liter. Jest do zachowanie domyślne, jeśli dany system plików ma włączoną flagę strict.

    unshare_blocks
        Jeśli system plików ma współdzielone bloki, z włączoną funkcją bloków współdzielonych tylko do odczytu, dojdzie do cofnięcia współdzielenia wszystkich takich bloków i usunięcia flagi tylko do odczytu. Jeśli na urządzeniu jest zbyt mało miejsca, operacja ta nie powiedzie się. Jeśli system plików nie ma ustawionej flagi tylko do odczytu, ale posiada bloki współdzielone, opcja ta nie da żadnego rezultatu. Proszę zauważyć, że jeśli nie będzie wolnego miejsca do sklonowania bloków, program nie poprosi o usunięcie żadnych plików - po prostu działanie to nie powiedzie się.

        Proszę zauważyć, że unshare_blocks implikuje opcję „-f”, aby wymusić przejście przez wszystkie przebiegi. Dodatkowo, jeśli poda się również „-n”, e2fsck dokona symulacji, próbując przydzielić wystarczającą ilość miejsca do przeprowadzenia deduplikacji. Jeśli jej zabraknie, kod zakończenia będzie niezerowy.

-f  Wymusza sprawdzanie, nawet jeśli system wydaje się być czysty.

-F  Wypróżnia bufory systemu plików przed uruchomieniem programu. Przydatne właściwie tylko w czasowych próbach e2fsck.

-j zewnętrzny_dziennik
    Ustawia ścieżkę dostępu do zewnętrznego dziennika dla tego systemu plików.

-k  W połączeniu z opcją -c, zachowywane są wszystkie uszkodzone bloki na liście złych bloków, a nowe uszkodzone bloki znalezione przez badblocks(8) będą dodane do istniejącej listy złych bloków.

-l nazwa-pliku
    Dodaje podane przez nazwę-pliku bloki do listy bloków uszkodzonych. Format pliku jest taki sam jak ten utworzony przez program badblocks(8). Proszę zauważyć, że numery bloków bazują na rozmiarze bloku systemu plików. Dlatego badblocks(8) musi otrzymać rozmiar bloku systemu plików. Jednak dużo łatwiejsze i bezpieczniejsze jest użycie opcji -c programu e2fsck, ponieważ zapewnia to przekazanie właściwych parametrów do programu badblocks.

-L nazwa-pliku
    Ustawia listę uszkodzonych bloków na listę bloków określoną przez nazwę-pliku. (Opcja ta jest identyczna z -l, poza tym, że przed dodaniem listy bloków z pliku, stara lista uszkodzonych bloków jest czyszczona).

-n  Otwiera system plików w trybie tylko do odczytu i zakłada odpowiedź „nie” na wszystkie pytania. Umożliwia to użycie e2fsck w trybie nieinteraktywnym. Ta opcja nie może być podana razem z opcjami -p lub -y.

-p  Automatycznie naprawia („preen”) system plików. Ta opcja powoduje automatyczne naprawianie przez e2fsck wszystkich problemów systemu plików, które mogą zostać bezpiecznie naprawione bez udziału człowieka. Jeśli e2fsck wykryje problem, który może wymagać obecności administratora w celu wykonania dodatkowych działań, e2fsck wypisze opis problemu i wyjdzie z wartością 4 dodaną (logiczne OR) do kodu zakończenia. (patrz rozdział KOD WYJŚCIA). Ta opcja jest zwykle używana w systemowych skryptach rozruchowych. Nie może być użyta razem z opcjami -n lub -y.

-r  Ta opcja nie robi nic; jest udostępniona dla kompatybilności wstecznej.

-t  Wypisuje statystyki czasowe dla e2fsck. Jeśli opcja ta jest użyta dwukrotnie, to wyświetlane są dodatkowe statystyki czasowe.

-v  Tryb szczegółowy (verbose).

-V  Wypisuje informację o wersji i wychodzi.

-y  Zakłada odpowiedź „tak” na wszystkie pytania; umożliwia użycie e2fsck w trybie nieinteraktywnym. Opcja nie może być podana razem z opcjami -n lub -p.

-z plik-zapasowy
    Przed nadpisaniem bloku w systemie plików, zapisuje jego starą zawartość do pliku zapasowego. Później można użyć programu e2undo(8) do przywrócenia starej zawartości systemu plików z pliku zapasowego, jeśli coś pójdzie nie tak. Jeśli jako plik-zapasowy poda się pusty łańcuch, przyjmie on wartość domyślną: e2fsck-urządzenie.e2undo w katalogu określonym zmienną środowiskową E2FSPROGS_UNDO_DIR. OSTRZEŻENIE: Plik zapasowy nie pomoże w przypadku utraty zasilania lub zawieszenia systemu.

KOD ZAKOŃCZENIA
Kod zakończenia zwracany przez e2fsck jest sumą następujących warunków:
  0    - Bez błędów
  1    - Błędy systemu plików są poprawione
  2    - Błędy systemu plików są poprawione, system powinien
    zostać uruchomiony ponownie
  4    - Błędy systemu plików nie zostały poprawione
  8    - Błąd operacyjny
  16    - Błąd w składni lub użyciu
  32    - Działanie e2fsck przerwane przez użytkownika
  128    - Błąd biblioteki dzielonej

SYGNAŁY
Następujące sygnały mają podany niżej efekt, gdy zostaną wysłane do e2fsck.

SIGUSR1
    Ten sygnał powoduje, że e2fsck wyświetli pasek postępu. (Zobacz opis opcji -C).

SIGUSR2
    Ten sygnał powoduje, że e2fsck przestanie wyświetlać pasek postępu.

ZGŁASZANIE BŁĘDÓW
Prawie każdy program ma błędy. W przypadku znalezienia systemu plików, powodującego pad programu e2fsck lub takiego, którego e2fsck nie potrafi naprawić, proszę zgłosić to autorowi.

Proszę załączyć tyle informacji, ile da się załączyć w swoim zgłoszeniu błędu. Najlepiej dołączyć kompletną transkrypcję uruchomienia e2fsck, tak by autor mógł dokładnie widzieć, co się działo. Proszę upewnić się, że komunikaty programu są wyświetlane po angielsku; jeśli system został skonfigurowany do używania tłumaczeń, proszę ustawić zmienną środowiskową LC_ALL na wartość C, dzięki czemu transkrypcja działania programu będzie przydatna dla autora. Jeśli jest zapisywalny system plików, gdzie można tę transkrypcję zapisać, program script(1) umożliwia łatwe zapisanie wyjścia e2fsck do pliku.

Użyteczne może być też przesłanie wyjścia z dumpe2fs(8). Jeśli określony i-węzeł lub ich grupa wydaje się sprawiać e2fsck kłopoty, proszę spróbować uruchomić komendę debugfs(8) i wysłać wyjście komendy stat(1u) na dotkniętych i-węzłach. Jeśli i-węzeł jest katalogiem, komenda debugfs o nazwie dump umożliwi ekstrakcję zawartości i-węzła katalogu, którą można przesłać po zakodowaniu jej programem uuencode(1). Najbardziej przydatną rzeczą, jaką można wysłać w celu umożliwienia odtworzenia błędu przez autora, jest surowy, skompresowany zrzut obrazu systemu plików, utworzony za pomocą e2image(8) (proszę zapoznać się z jego stroną podręcznika).

Proszę również zawsze załączać pełny tekst wersji, wyświetlany przez e2fsck podczas pracy.

ŚRODOWISKO

E2FSCK_CONFIG
    Określa położenie pliku konfiguracyjnego (patrz e2fsck.conf(5)).

AUTOR
Ta wersja e2fsck została napisana przez Theodore'a Ts'o <tytso@mit.edu>.

ZOBACZ TAKŻE
e2fsck.conf(5), badblocks(8), dumpe2fs(8), debugfs(8), e2image(8), mke2fs(8), tune2fs(8)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Grzegorz Goławski <grzegol@pld.org.pl> i Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.