Najlepsze 3 sposoby naprawienia błędu „Brak miejsca na urządzeniu” w systemie Linux

Błędy bez wyraźnej przyczyny to najbardziej irytujące problemy, z którymi trzeba się uporać. I chociaż Linux jest zwykle specyficzny w swoich komunikatach o błędach, jest to jeden z niewielu przypadków, w których spada piłkę.

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

Dowiedzmy Się.

Czy Twój dysk twardy ma wystarczająco dużo miejsca(Hard Drive Actually Have Enough Space) ?

Zanim zaczniesz szukać rozwiązania, upewnij się, że jest problem. W końcu, jeśli miejsce na dysku faktycznie zabrakło w twoim systemie, nie ma powodu do paniki. Możesz po prostu usunąć niepotrzebne dane, aby zwolnić więcej miejsca.

Istnieją dwa polecenia systemu Linux do uzyskiwania informacji o miejscu na dysku - du i df. Polecenie du szacuje wykorzystanie miejsca na dysku, podczas gdy polecenie df analizuje wolną przestrzeń obecną na dysku. Używanie ich w połączeniu z sudo daje dokładny raport o tym, ile miejsca jest faktycznie dostępnego na dysku.

  1. Zacznijmy od polecenia du. Jego dane wyjściowe mogą być dość długie i niewygodne, więc użyjemy flag -s i -h. -s podsumowuje wyniki, a -h zapewnia, że ​​są one czytelne dla człowieka. Wpisz więc polecenie sudo du -sh / gdzie / wskazuje na katalog podstawowy.

  1. Nie przejmuj się wszystkimi wiadomościami o odmowie uprawnień – w ten sposób przeszukuje wszystkie podkatalogi systemu. W zależności od rozmiaru dysku może być konieczne pozostawienie go włączonego na jakiś czas, ponieważ rekursywnie przechodzi przez wszystko.

  1. Gdy du zakończy skanowanie, wyświetli prostą listę katalogów wraz z ich rozmiarami. Na przykład jest to wynik polecenia du zastosowanego do zwykłego katalogu.

Teraz użyjemy df, aby zobaczyć, ile wolnego miejsca jest dostępne. Polecenie df jest znacznie prostsze w użyciu, ponieważ pokazuje tylko zamontowane systemy plików i statystyki ich użycia. Ponownie użyjemy flagi -h, aby dane wyjściowe były czytelne dla człowieka.

sudo df-h

Pomysł polega na zliczaniu wyników poleceń du i df. Wszelkie rozbieżności wskazują na miejsce na dysku, które nie jest swobodnie dostępne, mimo że nie jest używane przez żadne pliki lub foldery.

Dlaczego Linux pokazuje(Does Linux Show) „Brak miejsca(Space Left) na urządzeniu”?

Jeśli widzisz komunikat o błędzie „Brak wolnego miejsca na urządzeniu” pomimo wystarczającej ilości wolnego miejsca na dysku, to nie wina sprzętu. Ustalenie dokładnej przyczyny błędu może zająć trochę rozwiązywania problemów.

  • Ostatnio usunięty plik: Najczęstszym powodem wyświetlania tego błędu jest niedawno usunięty plik. Często plik jest usuwany, gdy proces nadal go używa, zachowując zarezerwowane miejsce, nawet jeśli plik już nie istnieje.
  • Za mało i-węzłów(Enough Inodes) : Inną częstą przyczyną jest brak wystarczającej liczby i - węzłów(inodes) . I-węzły to strony indeksowe systemu plików Unix , przechowujące metadane każdego pliku w pamięci. Jednak i-węzły nie są nieograniczone, a zabraknie i-węzłów przed miejscem do przechowywania może spowodować błąd „Brak miejsca na urządzeniu”.
  • Awaria dysku(Hard) twardego: Wtedy oczywiście istnieje możliwość, że dysk twardy po prostu ulegnie awarii, a większość pozornie wolnego miejsca zajmują uszkodzone sektory. Ponieważ system nie zapisuje żadnych plików w tych lokalizacjach, zgłasza błąd.

Poprawka 1: Uruchom ponownie procesy przy użyciu usuniętych plików(Using Deleted Files)

Najbardziej prawdopodobną przyczyną błędu „Brak miejsca na urządzeniu” jest proces nadal wykorzystujący usunięty plik. Na szczęście naprawienie tego błędu jest łatwe. Wystarczy ponownie uruchomić proces,(restart the process) aby zwolnić zarezerwowane miejsce.

  1. Aby znaleźć problematyczny proces, musisz użyć poleceń lsof i grep. Polecenie lsof wyświetli listę wszystkich otwartych plików używanych przez uruchomione procesy, a grep może zawęzić wybór do tych, które zostały usunięte. Wpisz sudo lsof / | grep usunięty gdzie / jest katalogiem podstawowym i | potok do łączenia wyjścia lsof z grep.

  1. Teraz możesz ponownie uruchomić proces, którego dotyczy problem, za pomocą polecenia sudo systemctl restart nazwa_usługi, gdzie nazwa usługi jest nazwą usługi, która pojawiła się podczas wyszukiwania.

  1. Jeśli istnieje wiele takich procesów lub po prostu nie chcesz zawracać sobie głowy znajdowaniem określonych usług, możesz po prostu zresetować je wszystkie za pomocą polecenia sudo systemctl demon-reload. To regeneruje wszystkie zależności, biorąc pod uwagę wszelkie zmiany w systemie plików.

Po tym czasie miejsce do przechowywania przechowywane przez proces powinno być ponownie dostępne, umożliwiając zapisywanie plików bez żadnych błędów.

Poprawka 2: Sprawdź i-węzły

Chociaż każdy dysk ma dużą liczbę i-węzłów, jest skończony. A jeśli twój system jest zaśmiecony niewiarygodną liczbą plików, możliwe jest osiągnięcie tego limitu przed wyczerpaniem pojemności dysku. Dlatego lepiej mieć duże pliki niż zbyt wiele małych.

Możesz łatwo sprawdzić dostępność i-węzłów, używając flagi -i w poleceniu df. Lubię to:

sudo df-i

To jasno pokaże całkowitą liczbę i-węzłów obecnych w systemie plików, wraz z ich aktualnie używaną ilością. Jeśli w systemie nie ma już wolnych i-węzłów, jest to źródło błędu „Brak miejsca na urządzeniu”.

Ponieważ i-węzły są tworzone dopiero po pierwszym sformatowaniu dysku, nie ma możliwości wygenerowania większej liczby i-węzłów. Wszystko, co możesz zrobić, to usunąć niepotrzebne pliki, aby zwolnić i-węzły dla przyszłych plików.

Poprawka 3: Oznacz złe bloki

Uszkodzenie danych(Data) to nieunikniony los każdego dysku twardego. Podczas gdy nowy dysk nie napotka tego problemu, starsze dyski twarde stopniowo zaczną się „złe”.

Oznacza to, że części dysku twardego stają się 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 w rzeczywistości nie można do nich zapisać żadnych plików. Prowadzi to do błędu „Brak miejsca na urządzeniu”, ponieważ system operacyjny próbuje i nie może przechowywać żadnych danych w tych lokalizacjach.

Nie ma realnego sposobu na rozwiązanie tego problemu, ponieważ uszkodzone sektory są wynikiem fizycznego zużycia dysku twardego. Jedyne, co możesz zrobić, to oznaczyć uszkodzone sektory, aby system plików nie odwoływał się już do nich.

Wymaga to rozruchu z Live CD , ponieważ nie można przeprowadzić sprawdzania systemu plików(File System Check) na uruchomionym dysku. Gdy to zrobisz, po prostu użyj następującego polecenia:

sudo fsck -vcck /dev/sda

Zastępuje to /dev/sda ścieżką dysku, który chcesz naprawić. To automatycznie wykryje wszystkie uszkodzone bloki na dysku i oznaczy je jako bezużyteczne. Nie zapewni to jednak dodatkowej pojemności, więc przygotuj się na wyczyszczenie niektórych bezużytecznych plików, aby zwolnić miejsce na dysku.

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

Zwykłym powodem wyświetlania błędu „Brak miejsca na urządzeniu” w systemie Ubuntu(Ubuntu) lub dowolnej innej dystrybucji Linuksa(Linux) jest usunięty plik, który jest nadal używany przez uruchomiony proces. Powoduje to zarezerwowanie miejsca zajmowanego przez plik, uniemożliwiając innym operacjom zapisywanie danych w tym miejscu.

Naprawienie tego problemu jest również najłatwiejsze, ponieważ wystarczy ponownie uruchomić dany proces. Jednak inne przyczyny błędu nie są tak łatwe do rozwiązania.

Niezależnie od tego, czy Twój dysk jest nękany przez złe bloki danych, czy zabrakło i-węzłów, nie ma bezpośredniego sposobu na rozwiązanie tych problemów. Musisz usunąć istniejące pliki, aby zrobić miejsce na zapisanie nowych danych.



About the author

Jestem ekspertem komputerowym z ponad 10-letnim doświadczeniem i specjalizuję się w pomaganiu ludziom w zarządzaniu komputerami w ich biurze. Napisałem artykuły na takie tematy, jak optymalizacja połączenia internetowego, konfiguracja komputera w celu uzyskania najlepszych wrażeń w grach i nie tylko. Jeśli szukasz pomocy we wszystkim, co dotyczy Twojej pracy lub życia osobistego, jestem osobą dla Ciebie!



Related posts