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 rezygnuje.
Wyświetlenie komunikatu „Brak wolnego miejsca na urządzeniu” niewiele wyjaśnia, zwłaszcza jeśli dysk nie jest zapełniony. Dlaczego pojawia się ten komunikat o błędzie? Dlaczego nie możesz utworzyć nowych plików, mimo że masz wystarczającą ilość miejsca na dysku? A co najważniejsze, jak to naprawić?
Przekonajmy się.
Czy na Twoim dysku twardym rzeczywiście jest wystarczająco dużo miejsca?
Zanim zaczniesz szukać rozwiązania, najpierw upewnij się, że wystąpił problem. W końcu, jeśli w systemie faktycznie zabrakło miejsca na dysku, nie ma powodu do paniki. Możesz po prostu usunąć niepotrzebne dane, aby zwolnić więcej miejsca.
Istnieją dwa polecenia systemu Linux umożliwiające uzyskanie informacji o miejscu na dysku – du i df. Polecenie du szacuje wykorzystanie miejsca na dysku, natomiast polecenie df analizuje ilość wolnego miejsca na dysku. Użycie ich w połączeniu z sudo daje dokładny raport o ilości faktycznie dostępnego miejsca na dysku.
Teraz użyjemy df, aby sprawdzić, 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. Jeszcze raz użyjemy opcji -h, aby wynik był czytelny dla człowieka.
sudo df -h .
Zamysł jest taki, aby zliczyć wyniki poleceń du i df. Wszelkie rozbieżności wskazują, że miejsce na dysku nie jest swobodnie dostępne, mimo że nie jest wykorzystywane przez żadne pliki ani foldery.
Dlaczego Linux wyświetla komunikat „Brak wolnego miejsca na urządzeniu”?
Jeśli pomimo wystarczającej ilości wolnego miejsca na dysku widzisz komunikat o błędzie „Brak miejsca na urządzeniu”, nie jest to wina sprzętu. Znalezienie dokładnej przyczyny błędu może zająć trochę czasu.
Poprawka 1: Uruchom ponownie procesy przy użyciu usuniętych plików
Najbardziej prawdopodobną przyczyną błędu „Brak miejsca na urządzeniu” jest proces nadal korzystający z usuniętego pliku. Na szczęście naprawienie tego błędu jest łatwe. Wystarczy ponownie uruchomić proces, aby zwolnić zarezerwowane miejsce.
Po tym czasie miejsce zajmowane przez proces powinno być ponownie dostępne, umożliwiając zapisywanie plików bez występowania błędów.
Poprawka 2: Sprawdź i-węzły
Chociaż każdy dysk ma dużą liczbę i-węzłów, jest on 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 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 z poleceniem df. W ten sposób:
sudo df -i
To wyraźnie pokaże całkowitą liczbę i-węzłów obecnych w systemie plików, wraz z ilością aktualnie używaną. Jeśli w systemie nie ma już wolnych i-węzłów, jest to przyczyną błędu „Brak wolnego miejsca na urządzeniu”.
Ponieważ i-węzły są tworzone dopiero podczas pierwszego formatowania 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: Zaznacz uszkodzone bloki
Uszkodzenie danych jest nieuniknionym losem każdego dysku twardego. Chociaż nowy dysk nie będzie powodował tego problemu, starsze dyski twarde stopniowo zaczną „uszkodzić”.
Oznacza to, że części dysku twardego stają się bezużyteczne, mimo że system plików nadal uważa je za sprawne. Te uszkodzone bloki fałszywie zawyżają pozorną ilość wolnego miejsca na dysku, podczas gdy w rzeczywistości nie można na nich zapisywać żadnych plików. Prowadzi to do błędu „Brak wolnego miejsca na urządzeniu”, ponieważ system operacyjny próbuje zapisać jakiekolwiek dane w tych lokalizacjach, ale kończy się to niepowodzeniem.
Nie ma rzeczywistego sposobu na rozwiązanie tego problemu, ponieważ uszkodzone sektory są wynikiem fizycznego zużycia dysku twardego. Jedyne, co możesz zrobić, to zaznaczyć uszkodzone sektory, aby system plików nie odwoływał się już do nich..
Wymaga to rozruchu z Płyta CD na żywo, ponieważ nie można przeprowadzić sprawdzania systemu plików na działającym dysku. Gdy to zrobisz, po prostu użyj następującego polecenia:
sudo fsck -vcck /dev/sda
To zastępuje /dev/sda ścieżką dysku, który chcesz naprawić. Spowoduje to automatyczne wykrycie wszystkich uszkodzonych bloków na dysku i oznaczenie ich jako bezużyteczne. Nie zapewni to jednak dodatkowej pojemności, więc przygotuj się na wyczyszczenie niektórych niepotrzebnych plików, aby zwolnić miejsce na dysku.
Jaki jest najlepszy sposób naprawienia błędu „Brak wolnego miejsca na urządzeniu”?
Zwykłą przyczyną błędu „Brak wolnego miejsca na urządzeniu” w systemie Ubuntu lub dowolnej innej dystrybucji Linuksa jest usunięty plik, który jest nadal używany przez działający proces. Rezerwuje to miejsce zajmowane przez plik, uniemożliwiając innym operacjom zapisanie 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ą łatwe do rozwiązania.
Bez względu na to, czy na Twoim dysku występują uszkodzone bloki danych, czy też zabrakło mu i-węzłów, nie ma bezpośredniego sposobu rozwiązania tych problemów. Musisz usunąć istniejące pliki, aby zrobić miejsce na zapisanie nowych danych.
.