Wymuś fsck.ext4 przy ponownym uruchomieniu, ale naprawdę „wymuszony”

21

Jeden z moich serwerów Ubuntu 10.04 sprawia mi problemy. Po uruchomieniu fsck.ext4 -n /dev/sda5informuje mnie o błędach w liczbie wolnych i-węzłów, liczby wolnych bloków i innych.

Próbowałem:

touch /forcefsck

Próbowałem także:

shutdown -rF now

a mimo to po ponownym uruchomieniu widzę błędy.

Właśnie sprawdziłem również na moim eeePC netbook, Ubuntu 10.10 i mam ten sam problem!

Jak mogę wymusić naprawdę „wymuszoną” „siłę” poważnie naprawić mój system plików „fsck systemu plików” / ”przy ponownym uruchomieniu?

Wyjaśnienie: Uruchamiam , fsck.ext4 -nponieważ jest to podłączony system plików, aby sprawdzić, czy nie ma błędów. To mówi mi, że są. Myślałem, że automatyczny fsck co 30 montowań podczas procesu uruchamiania służy właśnie do usuwania błędów w głównym systemie plików. Ale w moim przypadku tak się nie dzieje. Mógłbym zrestartować się z LiveCD i naprawić błędy, a następnie ponownie uruchomić ponownie, ale to jest poważne przestój dla serwera na żywo. Ponowne uruchomienie, auto fsck, a następnie kontynuowanie rozruchu jest o wiele bardziej trwałe na serwerze na żywo i uważam, że powinno być właściwe zachowanie.

Informacje dodatkowe: Oto dane wyjściowe. Wygląda na coś, co naprawiłby autofsck, prawda?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks
UrkoM
źródło
jakiej wersji serwera Ubuntu używasz?
crncosta
10.04. Zmienię moje pytanie.
UrkoM
Nie sądzę, żebyś mógł to zrobić, w rzeczywistości lepiej byłoby zrobić to ręcznie.
RolandiXor
1
Przepraszam, ale wciąż potrzebuję więcej informacji. Czy robisz fsck na zamontowanych systemach plików? czy możesz uruchomić komputer z LiveCD i sprawdzić ponownie (z odmontowanym / dev / sda5)?
crncosta
Czy to możliwe, że nie system plików, ale dysk twardy jest uszkodzony? W takim przypadku można się spodziewać, że ext4 nie naprawia błędów tak, jak gdyby było tylko kilka uszkodzonych sektorów.
Stefano Palazzo

Odpowiedzi:

10

Ze strony podręcznika e2fsck:

„Zauważ, że generalnie uruchomienie e2fsck na zamontowanych systemach plików nie jest bezpieczne. Jedynym wyjątkiem jest sytuacja, gdy podano opcję -n i nie podano opcji -c, -l lub -L. Jednak nawet jeśli jest to bezpieczne aby to zrobić, wyniki wydrukowane przez e2fsck są niepoprawne, jeśli system plików jest zamontowany. Jeśli e2fsck zapyta, czy powinieneś sprawdzić zamontowany system plików, jedyną prawidłową odpowiedzią jest „nie”. Tylko eksperci, którzy naprawdę wiedzą, co powinni rozważyć odpowiedź na to pytanie w jakikolwiek inny sposób ”.

Więc jeśli sprawdzisz zamontowany FS za pomocą fsck, nawet używając opcji -n, wynik może być w ogóle niepoprawny. Nie sprawdzaj zamontowanych systemów plików. Użyj Live-CD / Live-USB.

Jeśli nie sprawdzisz systemu plików, gdy jest on zamontowany, nie rozumiem, dlaczego musisz go użyć touch /forcefsck, możesz po prostu odmontować go i naprawić. Ale jeśli tak jest i po poprawce FS nadal zawiera błędy, możesz rozważyć użycie:

e2fsck -cy /dev/sda5

To rozwiąże problem związany z dyskiem twardym, zwany uszkodzonymi blokami (może to potrwać długo).

Jeśli chcesz sprawdzić zamontowany system plików, nie wiem, jak postępować, ale myślę, że powinieneś utworzyć kolejne pytanie.

Nyamiou The Galeanthrope
źródło
Masz rację, system plików jest zamontowany. I oczywiście muszę wykonać polecenie fsck, gdy nie zostaną zamontowane. Ale uruchamiam fsck -n, aby sprawdzić, kiedy jest zamontowany, bez wprowadzania zmian, i to mówi mi, że są błędy. I czy fsck przy ponownym uruchomieniu nie powinien ich naprawić ???
UrkoM,
Właśnie zauważyłem, co mówisz w pierwszym zdaniu: dlaczego fsck -n nie jest poprawny w zamontowanym systemie plików? Jak mogę sprawdzić, czy w zamontowanym systemie plików występują błędy w niezawodny sposób?
UrkoM,
Możesz sprawdzić stronę podręcznika e2fsck, która mówi: „Zauważ, że generalnie nie jest bezpieczne uruchamianie e2fsck na zamontowanych systemach plików. Jedynym wyjątkiem jest opcja -n, oraz opcje -c, -l lub -L nie określono. Jednak nawet jeśli jest to bezpieczne, wyniki wydrukowane przez e2fsck są niepoprawne, jeśli system plików jest zamontowany. Jeśli e2fsck zapyta, czy należy sprawdzić zamontowany system plików, jedyną poprawną odpowiedzią jest '' nie ”. Tylko eksperci, którzy naprawdę wiedzą, co robią, powinni rozważyć odpowiedź na to pytanie w jakikolwiek inny sposób.”
Nyamiou The Galeanthrope
Nie wiem, jak sprawdzić zamontowany system plików, może powinieneś utworzyć kolejne pytanie.
Nyamiou The Galeanthrope
Czy możesz dodać te dwa ostatnie komentarze do swojej odpowiedzi? Więc zaakceptuję to. Nie wiedziałem o tym, dlatego właśnie ... Myślę, że to dlatego, że fsck -n nie przetwarza dziennika, więc stan systemu plików jest niespójny, bez patrzenia na najnowsze zmiany tam zachowane.
UrkoM
24

Wiem, że to naprawdę stary wątek, ale ostatnio musiałem rozwiązać ten problem, więc chciałem opublikować, jak zmusić system operacyjny do naprawienia problemów znalezionych z fsck podczas uruchamiania (dla 12.04).

Musisz uruchomić polecenie sudo touch /forcefsck. Spowoduje to, że wykona fsck przy następnym uruchomieniu. Możesz zobaczyć wyniki fsck w /var/log/boot.log.

Nie ma jednak gwarancji, że fsck naprawi wszystko, co znajdzie. Aby to zrobić, musisz edytować plik / etc / default / rcS. Na końcu tego pliku znajduje się wiersz:

FSCKFIX=no

Należy to zmienić na następujące:

FSCKFIX=yes

Będzie to miało taki sam efekt, jak uruchomienie fsck z opcją -y, która wymusi wszystkie poprawki, które można wdrożyć i nie poprosi o interakcję użytkownika.

Pozwoli ci to uruchomić fsck, tak jak prosił OP, bez konieczności uciekania się do uruchamiania z dysku na żywo, co nie zawsze jest możliwe, szczególnie jeśli jesteś na zdalnym systemie.

Brian
źródło
1
Edycja tego wpisu w mojej instancji Ubuntu EC2 wraz z poleceniami sudo touch /forcefscki sudo shutdown -rskutecznie rozwiązała problemy z systemem plików i ostrzeżenie o sprawdzeniu podczas logowania. Łatwe i niezakłócające - na zdrowie.
c.gutierrez
To samo pytanie zostało zadane w związku z awarią serwera i ta odpowiedź była również tym, które działało dla mnie w systemie Ubuntu 14.04. Po prostu wykonanie, sudo touch /forcefscka następnie ponowne uruchomienie komputera nie; edycja rcSbyła konieczna.
Teemu Leisti,
12
sudo touch /forcefsck
sudo reboot

Masz literówkę, której dotykasz / forcefcsk. Litery „c” i „s” są zamieniane. fsck to skrót od FileSystemChecK.

Dan Benamy
źródło
Nie działałoby to dla mnie, ponieważ główny system plików jest zamontowany tylko do odczytu z powodu błędów, które muszę naprawić fsck! Problem z kurczakiem i jajami, który można rozwiązać tylko za pomocą liveCD lub wciągnięcia napędu do innej maszyny.
HDave
3

Nie możesz narzucić fsck / naprawi to, ponieważ partycja jest w użyciu. Spróbuj uruchomić sprawdzanie z innej partycji lub płyty CD na żywo.

charlie-tca
źródło
2
Bardzo prawda, ale automatyczny fsck podczas rozruchu powinien nastąpić przed użyciem partycji, właśnie po to, aby móc naprawić błędy na „/”. W przeciwnym razie o co chodzi?
UrkoM,
3
Uważam, że kontrola odbywa się przed użyciem, ale jest to raczej kontrola doradcza. Od Ciebie zależy, jak naprawić błędy. Łatwym sprawdzeniem jest przeglądanie / etc / fstab. Znak „/” jest sprawdzany inaczej niż inne partycje.
charlie-tca
Zdarza się to przed obróceniem korzenia? to znaczy. INITial Ram Disk.
mckenzm
1

Możesz dokonać automatycznej korekty w następujący sposób:

Tune2fs -c 5 -i 10 / dev / sda1

-cto maksymalna liczba montowań przed uruchomieniem fscki -imaksymalna liczba dni przed uruchomieniem fsck.

W takim przypadku będzie się to odbywać co 5 wierzchowców lub co 10 dni, w zależności od tego, co nastąpi wcześniej.

Mam dwa komputery, jeden z systemem Linux SuSE 13.2, a drugi z systemem Linux Mint 18.0 i oba działają doskonale.

hk3jld
źródło
Jakie są następujące formularze i komentarze w formie automatycznej: Tune2fs -c 5 -i 10 / dev / sda1 Gdzie: -c to maksymalna liczba montowań przed uruchomieniem fsck Gdzie: -i to maksymalna liczba dni przed uruchomieniem fsck W takim przypadku będzie się to odbywać co 5 wierzchowców lub co 10 dni, w zależności od tego, co nastąpi wcześniej. Mam dwa komputery, jeden z systemem Linux SuSE 13.2, a drugi z systemem Linux MInt 18.0 i oba działają doskonale.
hk3jld
Jakie są następujące formularze i komentarze w formie automatycznej: Tune2fs -c 5 -i 10 / dev / sda1 Gdzie: -c to maksymalna liczba montowań przed uruchomieniem fsck Gdzie: -i to maksymalna liczba dni przed uruchomieniem fsck W takim przypadku będzie się to odbywać co 5 wierzchowców lub co 10 dni, w zależności od tego, co nastąpi wcześniej. Mam dwa komputery, jeden z systemem Linux SuSE 13.2, a drugi z systemem Linux MInt 18.0 i oba działają doskonale. Nie znam angielskiego, ale używam tłumacza, mam nadzieję, że szkolenie jest w porządku
hk3jld
1
Czy to działa również na Ubuntu?
George Udosen