Co robi fsck -p (preen) na ext4?


16

Czytałem post na blogu o naprawie systemu plików, a autor postawił dobre pytanie… fsck -pma automatycznie naprawić drobne błędy bez interwencji człowieka. Ale co dokładnie to naprawi, gdy powie się mu, żeby przygotował system plików? Jakie błędy naprawi i co spowoduje, że zatrzyma się i powie użytkownikowi, że musi uruchomić fsck interaktywnie? Czy istnieje jakaś lista?

Byłem w Googlingu i wszystko, co znajduję, to strona podręcznika użytkownika, która tak naprawdę nie mówi, co -pnaprawi lub co uruchomi flagę praktyczną. Szczególnie interesuje mnie system plików ext4.

Odpowiedzi:


18

Odpowiedź na twoje pytanie znajduje się w e2fsck/problems.cpliku kodu źródłowego e2fsprogs . Poszukiwanie PR_PREEN_OKflagi powinno zacząć.

Ponieważ pełna obsługa błędów jest nieco bardziej zaangażowana, ze względu na mnogość różnych warunków błędu, które mogą wystąpić, zalecamy przyjrzenie się kodowi, jeśli martwisz się o konkretny przypadek. Poniższe listy zostały jednak wyodrębnione z komentarzy do warunków błędu i powinny dać ogólny przegląd efektów trybu wstępnego.

Następujące błędy / ostrzeżenia są obecnie obsługiwane automatycznie po określeniu -pflagi:

  • Zmień wskazówkę
  • I-węzeł dziennika jest niepoprawny
  • Superblok dziennika jest uszkodzony
  • Flaga Superblock has_journal jest czysta, ale ma dziennik
  • Ustawiono flagę Superblock potrzeb_recovery, ale dziennik nie jest obecny
  • Wersja systemu plików ma wartość 0, ale ustawione są flagi funkcji
  • Wskazówka dotycząca superbloku dla zewnętrznego superbloku
  • deskryptor grupy N oznaczony jako niezainicjowany bez zestawu funkcji.
  • niezainicjowana bitmapa blokowa grupy N, ale używana jest bitmapa i-węzłowa.
  • Deskryptor grupy N ma nieprawidłową liczbę nieużywanych i-węzłów.
  • Niezainicjowana bitmapa bloku ostatniej grupy.
  • Flaga test_fs jest ustawiona (i ext4 jest dostępny)
  • Czas ostatniego montażu jest w przyszłości (fudged)
  • Czas ostatniego zapisu jest w przyszłości (fudged)
  • Suma kontrolna grupy bloków (pytanie o zatrzask) jest nieprawidłowa.
  • Katalog główny ma ustawiony czas dtime
  • Zarezerwowany i-węzeł ma zły tryb
  • Usunięty i-węzeł ma zero czasu dtime
  • Używany i-węzeł, ale ustawiony czas dtime
  • Katalog o zerowej długości
  • I-węzeł ma niepoprawny rozmiar i_s
  • I-węzeł ma niepoprawne bloki i_blocks
  • Zły superblok w grupie
  • Złe deskryptory grup bloków w grupie
  • Blokowanie roszczenia bez podania przyczyny
  • Błąd przydzielania bloków do przenoszenia metadanych
  • Błąd alokacji bufora bloku podczas procesu relokacji
  • Przeniesienie informacji o grupie metadanych z X na Y
  • Przeniesienie informacji o grupie metatdanych do X
  • Blokuj błąd odczytu podczas procesu relokacji
  • Błąd zapisu bloku podczas procesu relokacji
  • Niezmienna flaga ustawiona na urządzeniu lub gnieździe gniazda
  • Niezerowy rozmiar dla urządzenia, węzła fifo lub gniazda
  • Wersja systemu plików ma wartość 0, ale ustawione są flagi funkcji
  • Węzeł czasopisma nie jest używany, ale zawiera dane
  • Dziennik ma zły tryb
  • Flaga INDEX_FL ustawiona na systemie plików innym niż HTREE
  • Flaga INDEX_FL ustawiona w katalogu innym niż katalog
  • Nieprawidłowy węzeł główny w katalogu HTREE
  • Nieobsługiwana wersja skrótu w katalogu HTREE
  • Niezgodna flaga w węźle głównym HTREE
  • HTREE za głęboko
  • niepoprawny i-węzeł-> i_extra_isize
  • niepoprawny wpis ea-> e_nazwa_len
  • niepoprawny wpis ea-> e_wartość_wyłączeń
  • niepoprawny wpis ea-> e_wartość_blok
  • niepoprawny wpis ea-> e_wartość_wartości
  • niepoprawny wpis ea-> e_hash
  • i-węzeł brakuje EXTENTS_FL, ale jest i-węzłem zakresu
  • I-węzeł nie powinien mieć ustawionego EOFBLOCKS_FL
  • Wpis w katalogu został usunięty lub nieużywany i-węzeł
  • Typ pliku katalogu nie jest ustawiony
  • Typ pliku katalogu ustawiony w systemie plików
  • Nieprawidłowy węzeł główny HTREE
  • Nieprawidłowy limit HTREE
  • Nieprawidłowa liczba HTREE
  • Węzeł wewnętrzny HTREE ma hashy w porządku w tabeli
  • Znaleziono i-węzeł w grupie, w której ustawiono _INODE_UNINIT
  • Znaleziono i-węzeł w nieużywanym obszarze grupy i-węzłów
  • i_blocks_hi powinno wynosić zero
  • / lost + found not found
  • Niepodłączony i-węzeł o zerowej długości
  • Nieprawidłowe liczenie odwołań do i-węzłów
  • Dopasowanie na końcu bitmapy i-węzłowej nie jest ustawione.
  • Dopasowanie na końcu bitmapy bloku nie jest ustawione.
  • Blokuj nagłówek różnic map bitowych
  • Blok nieużywany, ale oznaczony w mapie bitowej
  • Użyto bloku, ale nie zaznaczono go w bitmapie
  • Koniec różnic w blokach bitmap
  • Nagłówek różnic bitmapy i-węzłów
  • Nieużywany i-węzeł, ale zaznaczony w mapie bitowej
  • Użyto i-węzła, ale nie zaznaczono go w bitmapie
  • Koniec różnic bitmap i-węzłów
  • Wolne i-węzły liczą się dla grupy źle
  • Katalogi liczą się jako niepoprawne dla grupy
  • Wolne i-węzły liczą się źle
  • Darmowe bloki liczą się dla grupy źle
  • Wolne bloki liczą się źle
  • Zakres bloku nie jest używany, ale zaznaczony w mapie bitowej
  • Użyto zakresu bloków, ale nie zaznaczono go w bitmapie
  • Zakres i-węzła nie jest używany, ale zaznaczony w mapie bitowej
  • Zastosowano zakres i-węzła, ale nie zaznaczono go w bitmapie
  • Blok (y) grupy N jest w użyciu, ale grupa jest oznaczona BLOCK_UNINIT
  • Używane i-węzły grupy N, ale grupa jest oznaczona INODE_UNINIT
  • Ponownie utwórz dziennik, jeśli ustawiono flagę E2F_FLAG_JOURNAL_INODE

Następujące warunki błędu powodują przerwanie nieinteraktywnego procesu fsck, nawet jeśli -pflaga jest ustawiona:

  • Zablokuj mapę bitową poza grupą
  • Mapa bitowa i-węzłów nie jest w grupie
  • Tabela i-węzłów nie w grupie
  • Rozmiar systemu plików jest nieprawidłowy
  • Liczba i-węzłów w superbloku jest niepoprawna
  • Hurd nie obsługuje funkcji typu pliku
  • Dziennik ma nieznany typ superbloku
  • Zapytaj, czy powinniśmy wyczyścić dziennik
  • Superblock dziennika ma ustawiony nieznany zestaw opcji tylko do odczytu
  • Superblock czasopisma ma nieznaną niekompatybilną flagę funkcji
  • Dziennik ma nieobsługiwany numer wersji
  • Zapytaj, czy i tak powinniśmy prowadzić dziennik
  • Zarezerwowane bloki bez parametru resize_inode
  • Resize_inode nie jest włączony, ale zmiana rozmiaru i-węzła jest niezerowa
  • Niepoprawna zmiana rozmiaru i-węzła
  • Czas ostatniego montażu jest w przyszłości
  • Czas ostatniego zapisu jest w przyszłości
  • deskryptor grupy N suma kontrolna jest nieprawidłowa.
  • Katalog główny nie jest i-węzłem
  • Blokuj konflikty bitmap z innymi blokami fs
  • I-bitowa mapa bitowa powoduje konflikty z innym blokiem fs
  • Tabela i-węzłów powoduje konflikty z innym blokiem fs
  • Blokowa mapa bitowa znajduje się na złym bloku
  • Mapa bitowa i-węzła jest uszkodzona
  • Nielegalny numer bloku w i-węźle
  • Numer bloku pokrywa się z metadanymi fs
  • I-węzeł ma niedozwolone bloki (pytanie o zatrzask)
  • Zbyt wiele złych bloków w i-węzle
  • Niedozwolony numer bloku w złym bloku i-węzła
  • Zły blok i-węzła ma niedozwolone bloki (pytanie o zatrzask)
  • Zły blok używany jako zły blok pośredni
  • Niespójność nie może być naprawiona natychmiast
  • Błędny monit o blok główny
  • Pomiń komunikat wiadomości
  • Flaga Imagic ustawiona na i-węźle, gdy system plików go nie obsługuje
  • Flaga kompresji ustawiana w i-węźle, gdy system plików go nie obsługuje
  • Postępuj z i-węzłami, które były częścią osieroconej listy połączonej
  • Radzenie sobie z i-węzłami, które były częścią uszkodzonej sierocej listy połączonej (pytanie o zatrzask)
  • Błąd podczas odczytu rozszerzonego bloku atrybutów
  • Nieprawidłowy rozszerzony blok atrybutów
  • Niepoprawna liczba odniesień do atrybutu rozszerzonego
  • Wiele bloków EA nie jest obsługiwanych
  • Błąd kolizji przydziału EA
  • Zła nazwa rozszerzonego atrybutu
  • Zła wartość rozszerzonego atrybutu
  • I-węzeł za duży (pytanie o zatrzask)
  • Katalog jest za duży
  • Zwykły plik jest zbyt duży
  • Symlink za duży
  • Zły blok ma blok pośredni, który powoduje konflikt z blokiem systemu plików
  • Zmiana rozmiaru i-węzła nie powiodła się
  • i-węzeł wydaje się być katalogiem
  • Błąd podczas odczytu drzewa zasięgu
  • Brak iteracji zakresu
  • Zły zakres bloku początkowego
  • Zakres kończy się poza systemem plików
  • Ustawiono flagę EXTENTS_FL w systemie plików nieobszerowanym
  • i-węzeł ma zakresy, brakuje superbloku INCOMPAT_EXTENTS
  • Szybkie łącze symboliczne ma ustawiony EXTENTS_FL
  • Zakresy są nieczynne
  • I-węzeł ma nieprawidłowy węzeł zasięgu
  • Sklonować duplikaty / złe bloki?
  • Zły numer i-węzła dla „.”
  • Wpis książki telefonicznej ma zły numer i-węzła
  • Wpis bezpośredni to link do „.”
  • Punkty wejścia do katalogu i-węzła znajdują się teraz w złym bloku
  • Wpis katalogu zawiera link do katalogu
  • Wpis katalogu zawiera link do katalogu głównego
  • Wpis do katalogu zawiera niedozwolone znaki w nazwie
  • Brakujące „.” i-węzeł katalogu
  • Brakuje „..” w węźle katalogu
  • Pierwszy wpis w węźle katalogu nie zawiera „.”
  • Drugi wpis w i-węźle katalogu nie zawiera „..”
  • i_faddr powinno wynosić zero
  • i_plik_acl powinien wynosić zero
  • i_dir_acl powinien wynosić zero
  • i_frag powinna wynosić zero
  • i_fsize powinien wynosić zero
  • i-węzeł ma zły tryb
  • katalog uszkodzony
  • nazwa pliku jest za długa
  • Węzeł katalogu ma brakujący blok (dziurę)
  • „.” nie ma wartości NULL
  • „..” nie ma wartości NULL
  • Węzeł urządzenia o niedozwolonym charakterze
  • Nielegalny i-węzeł urządzenia blokowego
  • Duplikować '.' wejście
  • Zduplikowana wartość
  • Ostateczne rec_len jest nieprawidłowe
  • Błąd podczas odczytu bloku katalogu
  • Błąd zapisu bloku katalogu
  • Wpis w katalogu dla „.” jest duży. Rozdzielać?
  • Nielegalny i-węzeł FIFO
  • Niedozwolony i-węzeł gniazda
  • Niepoprawny typ pliku katalogu
  • Nazwa katalogu nie ma wartości
  • Nieprawidłowe dowiązanie symboliczne
  • i_file_acl (rozszerzony blok atrybutów) jest zły
  • System plików zawiera duże pliki, ale nie ma takiej flagi w sb
  • Wyczyść niepoprawny katalog HTREE
  • Zły blok w węźle wewnętrznym htree
  • Znaleziono zduplikowany wpis w katalogu
  • Znaleziono nieunikalną nazwę pliku
  • i_blocks_hi powinno wynosić zero
  • Nieoczekiwany blok HTREE
  • Węzeł główny nie został przydzielony
  • Brak miejsca w zgubionym + znalezionym
  • Nieodłączony i-węzeł katalogu
  • .. wpis jest niepoprawny
  • Lost + nie znaleziono katalogu
  • Niepodłączony i-węzeł
  • Superblock uszkodzony
  • Fragmenty nie są obsługiwane
  • Błąd podczas określania wielkości fizycznego urządzenia systemu plików
  • Dziennik zewnętrzny ma (nieobsługiwany) wiele systemów plików
  • Nie można znaleźć zewnętrznego dziennika
  • Dziennik zewnętrzny ma zły superblok
  • Superblock ma zły identyfikator UUID dziennika
  • Błąd przydziału bitmapy i-węzłowej
  • Błąd przydziału bitmapy blokowej
  • Błąd podczas przydzielania informacji o łączu icount
  • Błąd przydziału tablicy bloków katalogu
  • Błąd podczas skanowania i-węzłów
  • Błąd podczas iteracji po blokach
  • Błąd podczas przechowywania informacji o liczbie i-węzłów
  • Błąd podczas przechowywania informacji o bloku katalogów
  • Błąd podczas odczytu i-węzła (do wyczyszczenia)
  • Błąd podczas przydzielania struktury przeliczania
  • Błąd podczas odczytu bloku Extended Attribute podczas ustalania przelicznika
  • Wystąpił błąd podczas zapisywania bloku Extended Attribute podczas ustalania przelicznika
  • Błąd przy alokacji struktury alokacji regionu EA
  • Błąd podczas skanowania i-węzłów
  • Błąd przydziału bitmapy i-węzłowej
  • Błąd wewnętrzny: nie można znaleźć dir_info
  • Błąd podczas przydzielania struktury icount
  • Błąd iteracji po blokach katalogów
  • Błąd podczas zwalniania i-węzła
  • Błąd podczas dostosowywania konta EA
  • Błąd przydziału bitmapy i-węzłowej
  • Błąd podczas tworzenia katalogu głównego
  • Węzeł główny nie jest katalogiem; przerwanie
  • Nie można kontynuować bez węzła głównego.
  • Błąd wewnętrzny: nie można znaleźć dir_info
  • Błąd programowania: punkty końcowe bitmapy nie pasują
  • Błąd wewnętrzny: nieudany koniec mapy bitowej
  • Błąd kopiowania w zastępczej bitmodzie i-węzłowej
  • Błąd kopiowania w zastępczej bitmapie blokowej

Noah, jeśli o tym wiesz, czy można stworzyć / wstrzyknąć wszystkie te błędy (lub cokolwiek jest możliwe)? Próbuję zbadać przyczynę tych błędów i możliwe rozwiązanie tych błędów.
AnkurTank
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.