3 najlepsze sposoby naprawy błędu „bez miejsca na urządzeniu” w Linux

3 najlepsze sposoby naprawy błędu „bez miejsca na urządzeniu” w Linux

Błędy bez wyraźnej przyczyny są najbardziej irytującymi problemami. I chociaż Linux jest zwykle specyficzny w swoich komunikatach o błędach, jest to jeden z niewielu razy, gdy upuszcza piłkę.

Uzyskanie „braku miejsca na błąd urządzenia” wyjaśnia bardzo niewiele, zwłaszcza jeśli dysk jest daleki od pełnego. Dlaczego ten komunikat o błędzie się pojawia? Dlaczego nie możesz utworzyć nowych plików, pomimo wystarczającej ilości miejsca na dysku? A co najważniejsze, jak to naprawić?

Spis treści

    Dowiedzmy Się.

    1. Nie martw się o wszystkie komunikaty odrzucone zezwoleniem - w ten sposób przechodzi przez wszystkie podlokdaryzacje systemu. W zależności od wielkości dysku może być konieczne pozostawienie go na chwilę, ponieważ rekurencyjnie przechodzi przez wszystko.
    1. Kiedy DU zakończy skanowanie, wyświetli prostą listę katalogów obok ich rozmiarów. Na przykład jest to wyjście polecenia DU zastosowanego do zwykłego katalogu.

    Teraz użyjemy DF, aby zobaczyć, ile dostępnych jest wolne miejsce. Polecenie DF jest znacznie prostsze w użyciu, ponieważ pokazuje tylko zamontowane systemy plików i ich statystyki użytkowania. Po raz kolejny użyjemy flagi -H, aby wyjściowa ludzka czytelna.

    sudo df -h

    Chodzi o to, aby wyniki wyniki poleceń DU i DF. Wszelkie rozbieżność wskazuje na przestrzeń dysku, która nie jest swobodnie dostępna, mimo że nie jest używana przez żadne pliki lub foldery.

    Dlaczego Linux pokazuje „bez miejsca na urządzeniu”?

    Jeśli widzisz komunikat o błędzie „brak miejsca na urządzeniu”, pomimo posiadania wystarczającej ilości wolnego miejsca na dysku, to nie jest to sprzęt, który jest winny. Zastanowienie dokładnej przyczyny błędu może wymagać trochę rozwiązywania problemów.

    • Niedawno usunięty plik: Najczęstszym powodem zobaczenia tego błędu jest niedawno usunięty plik. Często plik jest usuwany, podczas gdy proces nadal go używa, utrzymując przestrzeń zarezerwowaną, mimo że plik już zniknął.
    • Niewystarczająca ilość inodes: inną częstą przyczyną nie ma wystarczającej ilości inod. INODES to strony indeksu systemu plików UNIX, trzymające metadane każdego pliku w pamięci. Jednak INODES nie są nieograniczone, a brak braku, zanim przestrzeń do przechowywania może dać błąd „Brak miejsca na urządzeniu”.
    • Niepowodzenie dysku twardego: wtedy oczywiście istnieje możliwość, że dysk twardy po prostu zawodzi, a wiele pozornych wolnych przestrzeni jest podejmowana przez złe sektory. Ponieważ system nie zapisuje żadnych plików do tych lokalizacji, rzuca błąd.

    Napraw 1: Ponowne uruchom procesy za pomocą usuniętych plików

    Najbardziej prawdopodobną przyczyną błędu „bez miejsca pozostawionego na urządzeniu” jest proces, który nadal używa usuniętego pliku. Na szczęście naprawienie tego błędu jest łatwe. Wystarczy ponownie uruchomić proces, aby zwolnić zarezerwowaną pamięć.

    1. Aby znaleźć problematyczny proces, musisz użyć poleceń LSOF i GREP. Polecenie LSOF poda listę wszystkich otwartych plików używanych przez uruchamianie procesów, a GREP może zawęzić wybór do tych, które są usuwane. Więc wprowadź sudo lsof / | Grep usunęł gdzie / jest katalogiem podstawowym i | Rura do łączenia wyjściowej LSOF z GREP.
    1. Teraz możesz ponownie uruchomić proces dotknięty za pomocą polecenia Sudo SystemCtl Restart Service_name, gdzie nazwa usługi jest nazwą usługi, która pojawiła się w wyszukiwaniu.
    1. Jeśli istnieje wiele takich procesów lub po prostu nie chcesz zawracać sobie głowy znalezieniem określonych usług, możesz po prostu zresetować je wszystkie za pomocą polecenia Daon-Reload Sudo SystemCtl. To regeneruje wszystkie zależności, biorąc pod uwagę wszelkie zmiany w systemie plików.

    Po tym przestrzeń do przechowywania przez proces powinien być ponownie dostępny, umożliwiając pisanie plików bez wykonywania błędów.

    Poprawka 2: Sprawdź INODES

    Podczas gdy każdy napęd ma dużą liczbę INODS, jest skończony. A jeśli twój system jest zaśmiecony niesamowitą liczbą plików, możliwe jest osiągnięcie tego limitu przed wyczerpaniem pojemności przechowywania napędu. Dlatego lepiej jest mieć duże pliki niż zbyt wiele małych.

    Możesz łatwo sprawdzić dostępność INODES za pomocą flagi -i z poleceniem DF. Lubię to:

    sudo df -i

    To wyraźnie poinformuje o całkowitej liczbie inod obecnych w systemie plików, wraz z obecnie używaną kwotą. Jeśli w systemie nie pozostały żadne bezpłatne iody, jest to źródło błędu „bez miejsca na urządzeniu”.

    Ponieważ inody są tworzone tylko po pierwszym formatowaniu dysku, nie ma możliwości wygenerowania większej liczby INODS. Wszystko, co możesz zrobić, to usunąć dowolne niepotrzebne pliki, aby zwolnić INODES dla przyszłych plików.

    Napraw 3: Znak złe bloki

    Korupcja danych jest nieuniknionym losem każdego dysku twardego. Podczas gdy nowy dysk nie napotyka tego problemu, starsze dyski twarde stopniowo zaczną się „źle”.

    Oznacza to, że części dysku twardego są bezużyteczne, nawet jeśli system plików nadal uważa je za funkcjonalne. Te złe bloki fałszywie zawyżają pozorną wolną przestrzeń na dysku, podczas gdy tak naprawdę nie można im zapisać żadnych plików. Prowadzi to do błędu „bez miejsca na urządzeniu”, ponieważ system operacyjny próbuje i nie przechowuje żadnych danych w tych lokalizacjach.

    Nie ma prawdziwego sposobu na rozwiązanie tego problemu, ponieważ złe sektory są wynikiem fizycznego zużycia i łzy dysku twardego. Jedyne, co możesz zrobić, to zaznaczyć złe sektory, aby nie odwoływali się one do systemu plików.

    To wymaga uruchamiania z płyty CD na żywo, ponieważ nie można wykonać kontroli systemu plików na działającej dysk. Gdy to zrobisz, po prostu użyj następującego polecenia:

    sudo fsc -vcck /dev /sda

    To zastępuje /sda /sda ścieżką napędu, który chcesz naprawić. To automatycznie wykryje wszystkie złe bloki na dysku i oznaczy je jako bezużyteczne. Nie da ci to jednak żadnej dodatkowej pojemności pamięci, więc bądź przygotowany na wyczyszczenie bezużytecznych plików, aby zwolnić miejsce na napędu.

    Jaki jest najlepszy sposób na naprawę błędu „bez miejsca na urządzeniu”?

    Zwykłym powodem widzenia błędu „bez miejsca na urządzeniu” na Ubuntu lub w jakimkolwiek innym Linux Distro jest usunięty plik nadal używany przez działający proces. To zastrzega pamięć, która była zajęta przez plik, uniemożliwiając inne operacje zapisywanie danych do tej przestrzeni.

    Rozwiązanie tego problemu jest również najłatwiejsze, ponieważ wystarczy, że ponowne uruchomienie danego procesu. Inne przyczyny błędu nie są jednak łatwe do rozwiązania.

    Niezależnie od tego, czy dysk jest nękany złymi blokami danych, czy też zabraknie INODES, nie ma bezpośredniego sposobu na rozwiązanie tych problemów. Musisz usunąć istniejące pliki, aby zrobić miejsce na napisanie nowych danych.