Jak wyczyścić listę nieprzetworzonych sierocych i-węzłów?

17

Próbowałem zamontować dawniej readonly zamontowany system plików do odczytu do zapisu :

mount -o remount,rw /mountpoint

Niestety nie zadziałało:

mount: /mountpoint not mounted already, or bad option

dmesg raporty:

[2570543.520449] EXT4-fs (dm-0): Couldn't remount RDWR because of unprocessed orphan inode list.  Please umount/remount instead

A także umountnie działa:

umount /mountpoint
umount: /mountpoint: device is busy.
    (In some cases useful info about processes that use
     the device is found by lsof(8) or fuser(1))

Niestety żaden lsofz fusernich nie pokazuje żadnego procesu uzyskującego dostęp do czegoś znajdującego się pod punktem montowania.

Więc - jak mogę wyczyścić tę nieprzetworzoną listę osieroconych, aby móc ponownie zamontować system plików bez ponownego uruchamiania komputera?

bmk
źródło
1
Próbowałeś już fuser -km /mountpoint? Uważaj jednak, flaga -k zabije wszystkie procesy uzyskujące dostęp do tego katalogu.
Richard Keller
Czy możesz podać nieco więcej informacji na temat tego, z czego składa się dm-0?
cienkie
Mam wrażenie, że wiem, co słychać, ale czy możesz mi powiedzieć, czy system plików był pierwotnie zainstalowany, ponownie zamontowany (z powodu błędu ATA lub innej przyczyny) ro, a teraz próbujesz ponownie uruchomić RW?
Matthew Ife
@Mlfe: System plików był wcześniej montowany ponownie rowedług celu. Jest to system plików na LVM przechowujący codzienną migawkę kopii zapasowej, która zostanie ustawiona rwpodczas operacji tworzenia kopii zapasowej i ropo jej zakończeniu.
bmk

Odpowiedzi:

6

Czyścisz nieprzetworzoną listę sierocych i-węzłów, odmontowując i ponownie instalując system plików.

Poszerzonej dyskusji z listy mailingowej linux-ext4 ma więcej informacji o tym, co ta wiadomość jest i dlaczego może się wydawać. Krótko mówiąc, wydarzyła się jedna z dwóch rzeczy: albo napotkałeś błąd jądra, albo, co jest bardziej prawdopodobne, uszkodzenie systemu plików miało miejsce jeden z poprzednich przypadków, kiedy ponownie instalowałeś system plików. Prawdopodobnie dlatego system uważa, że ​​coś nadal korzysta z systemu plików, gdy go nie ma.

Jeśli minął rok i nadal nie uruchomiłeś ponownie komputera, po prostu poddaj się i zaplanuj okno konserwacji.

Michael Hampton
źródło
W międzyczasie zaplanowałem okno konserwacji i ponownie uruchomiłem komputer. To rozwiązało problem (nie spodziewałem się niczego innego ...). Przyjmuję twoją odpowiedź. Prawdopodobnie masz rację, że nastąpiło uszkodzenie systemu plików - chociaż nie mogę tego udowodnić.
bmk
25

Jeśli używasz ext2 / ext3 / ext4, powinieneś być w stanie e2fsckwyczyścić osierocone i-węzły:

e2fsck -f

W przypadku reiserfs możesz użyć, reiserfsckktóry wyczyści także osierocone i-węzły.

Richard Keller
źródło
Nie jestem pewien, dlaczego zostało to odrzucone, być może jest to powód do głosowania? Uruchomienie e2fsck usuwa osierocone i-węzły, które zobaczysz w wynikach konsoli jako clearing orphaned inode XXXXgdzie XXXX jest liczbą i-węzłów. Możesz łatwo uruchomić e2fsck bez ponownego uruchamiania systemu. Po uruchomieniu e2fsck powinieneś być w stanie ponownie zamontować partycję.
Richard Keller
2
Dzięki wielkie dzięki. Spędzam godziny, zastanawiając się nad błędem. Wykonanie 'e2fsck -f / dev / sda1' naprawiło dla mnie osierocone węzły wraz z kilkoma innymi poprawkami. Powiedziałem tak wszystkim i działa teraz dobrze :)
whitehat
1
Wielkie dzięki!!. Twoje polecenia naprawiły tylko dysk VM VirtualBox po nieudanej instalacji nowej wersji VirtualBox: sudo e2fsck -f / dev / sda1
nine9five
2
Idealne, działało dla mnie na partycji root. Akceptowana odpowiedź (restart) nie działała sama. Musiałem się zrestartować po e2fsck, więc wygląda na to, że nadal potrzebujesz okna obsługi.
AdamS
1
Lepsza odpowiedź niż zaakceptowana. To działało idealnie dla mojego VPS. Znalazłem wiele błędów i naprawiłem je, a następnie uruchomiłem ponownie i wszystko działa ponownie. Uratowałem mój dzień.
Brain Foo Long
6

e2fsck -f <mount point> nie zadziała.

Najpierw sprawdź punkty montażu za pomocą

sudo mount -l

Następnie bezpośrednio sprawdź dysk.

Na przykład dla mnie

sudo e2fsck -f /dev/xvda2
Ganesh Krishnan
źródło
Gdy przejdziesz do problemu w Google i dojdziesz do swojego własnego rozwiązania na stosie. Moje życie jest teraz kompletne.
Ganesh Krishnan
1

Poleciłbym najpierw odmontować partycję na siłę, tj. Przy użyciu opcji -f, a następnie sprawdzenie systemu plików za pomocą fsck.

wolfgangsz
źródło
1
Niestety umount -fteż się nie udało. Komunikat o błędzie jest taki sam jak w przypadku zwykłego umount.
bmk
1

Prawdopodobnie powinieneś spróbować leniwego odmontowania, tj .:

umount -l

źródło