e2fsck - sprawdza linuksowy system plików
ext2/ext3/ext4
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
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.
- -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 40TB, 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 4MiB 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 plik
- Dodaje podane przez plik 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 plik
- Ustawia listę uszkodzonych bloków na listę
bloków określoną przez plik. (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 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
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.
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.
Ta wersja e2fsck została napisana przez Theodore'a
Ts'o <tytso@mit.edu>.
Autorami polskiego tłumaczenia niniejszej strony
podręcznika są: 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 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.