Na początek wspomnę o historii tego, jak powstał problem, a następnie o tym, jak go rozwiązać.
Mój zespół to Netbook Sony Vaio m120AL które mam od około 3 długich lat z twardym dyskiem o pojemności 320 GB, na którym współistnieją Windows 7, Chakra , moja partycja robocza z Xubuntu 12.04, partycja wymiany, partycja / home i dodatkowa partycja informacyjna, z którą udostępniam informacje System Windows.
Z tego powodu moje partycje główne w obu systemach są znacznie mniejsze według większości standardów (około 6 GB każdy), ale nigdy nie sprawiały mi problemu, ponieważ wystarczają na wszystkie potrzebne mi pakiety.
Teraz, wchodząc w konkretną sytuację, kilka dni temu wprowadzając aktualizacje w Xubuntu (wśród których uwzględniono nowe jądro) Widzę, że menedżer aktualizacji wyświetla błąd informujący, że próbuje zainstalować linux-image-3.2.0-51-generic, ale jego zależność linux-headers-3.2.0-51 to nie zostanie zainstalowany, szczegółowo przeglądam błąd i zauważam, że dpkg narzeka, że nie ma wolnego miejsca.
Błąd mówił coś o tym stylu, chociaż nie identycznym bo nie zapisałem tego:
nie można utworzyć `/usr/src/linux-headers-3.2.0-43/arch/xtensa/include/asm/coprocessor.h.dpkg-new '(podczas przetwarzania` ./usr/src/linux-headers -3.2.0 .43-XNUMX / arch / xtensa / include / asm / coprocessor.h '): Brak miejsca na urządzeniu
Przy jakiejś poprzedniej okazji to samo zdarzyło mi się, ale było tak, ponieważ pozwoliłem gromadzić się kilku starych Kerneli bez ich usuwania, ale tym razem sprawdzam i mam praktycznie 600 Mb dostępnego zgodnie z Conky z czego nie rozumiem, ale aby potwierdzić, czy może to być błąd w konfiguracji lub podobny, uruchamiam plik df -h:
Więc się nie mylę i to więcej niż wystarczająco miejsca na wykonanie aktualizacji (robiłem to w ten sposób wiele razy w ciągu długiego roku, odkąd jestem z Xubuntu) i tak robię sudo apt-get clean wyczyścić pobrane pakiety i spróbować ponownie, ale z tymi samymi wynikami.
Nadal uważam to za dziwne, ale i tak staram się wyjść z / motywów ikon, których zawsze używam i które bardzo modyfikowałem (Faenza y Obudzony), aby zwolnić więcej miejsca, a tym samym w końcu udaje mi się zaktualizować, przechodząc ponownie, aby przywrócić je do /.
Jednak w mojej głowie pozostał pomysł, że sprawa musi iść gdzie indziej, ale nie wiedziałem o którą. Kilka godzin później, gdy próbuję zainstalować dodatkowe pakiety, ponownie pojawia się wspomniany błąd i znowu jest wystarczająco dużo wolnego miejsca, więc szukam informacji.
Wyszukiwanie w internecie prowadzi mnie do kilku wątków na forach ubuntu-is, ale odpowiedź niektórych osób jest zawsze taka sama: nie masz wystarczającej ilości miejsca, usuń pliki lub rozszerz partycję główną, ale zauważyłem coś wspólnego w różnych wątkach, które znalazłem, zawsze w partycji głównej, która miała wolne miejsce, ale był podobny do mojego (~ 600-900 Mb) i rozmiar partycji nigdy nie przekroczył 10 Gb więc skończyłem wmawiać sobie, że problem musiał być inny i tak dotarłem do tytułu wpisu dzięki esta problem polega na tym, że partycja główna miała 100% używanych i-węzłów.
Użycie i-węzłów można zobaczyć za pomocą polecenia df-i:
A teraz jest wyjaśnienie.
I-węzły są słowami Dennisa Ritchiego:
Indeks, ze względu na nieco nietypową strukturę systemu plików, który przechowywał informacje o dostępie do plików jako płaską listę na dysku, pozostawiając na boku wszystkie hierarchiczne informacje o katalogach
dlatego może się zdarzyć, że dla danego systemu plików nadal jest wolne miejsce do przechowywania plików, ale nie ma dostępnych i-węzłów do ich indeksowania, ponieważ w systemie jest wiele plików i dlatego nie można utworzyć nowych.
Chodzi o to, że liczba i-węzłów w partycji ZEW4 nie można modyfikować (istnieją inne typy systemów, takie jak JFX o XFS gdzie nie jest to ograniczenie, ponieważ jest dynamiczne) jest to stała liczba obliczana podczas tworzenia partycji za pomocą mkfs.ext4 zgodnie z jej rozmiarem ze stosunkiem bajtów na i-węzeł zgodnie z preferencjami znajdującymi się w /etc/mke2fs.conf.
Podczas instalowania systemu zwykle używa się domyślnych preferencji, które zawierają relację i-węzeł = 16384, która dla małych partycji może być zbyt duża i niewystarczająca (jak w moim przypadku). Jedynym sposobem, aby to zmienić, jest utworzenie / sformatowanie partycji i określenie jej za pomocą opcji -i.
Jednak nie była to opcja dla mnie, ponieważ już wspomniałem, że i-węzły są powiązane z liczbą istniejących plików, więc użyj następującego skryptu bash znalezionego w przepełnienie stosu i że jest on połączony na stronie, o której wspomniałeś wcześniej, aby znaleźć katalogi w partycji głównej z większą liczbą plików:
#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$
chmod 700 /tmp/count_em_$$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n
rm -f /tmp/count_em_$$
Co daje następujący wynik:
Liczba, która pojawia się po lewej stronie, wskazuje liczbę obecnych plików, a ścieżka wskazuje powiązany katalog, jedna linia poniżej pojawia się katalog / var / lib / dpkg / info, ale jak zawsze wyczyszczam tutaj moje pakiety, nie ma nic do zrobienia.
Jeśli jednak rozpoznam dwa problemy to pierwszy i chociaż catpura stamtąd nie wychodzi kilka kolejnych wpisów zawiera ikonki Obudzony, więc muszę je przenieść tak lub tak, również to wyjaśnia, dlaczego kiedy to zrobiłem, mogłem zaktualizować pakiety, ponieważ zwolniłem wiele i-węzłów z partycji głównej podczas ich przenoszenia, ale problem powrócił po ich przeniesieniu.
Po drugie, następna największa liczba wpisów jest związana z nagłówkami kilku starych jąder i zdaję sobie sprawę, że procedura, której zawsze używam do eliminacji starych jąder, nie eliminuje nagłówków, co zwykle jest następujące, w terminal piszę:
dpkg --get-selections | grep obraz systemu Linux
który pokazuje mi zainstalowane jądra, a następnie używam:
pakiet sudo apt-get purge
Gdzie pakiet jest nazwą jądra, o którym mowa, ale to nie usuwa powiązanych nagłówków, więc robię:
dpkg --get-selections | grep-linux
A potem przystępuję do usuwania starych nagłówków, z:
sudo apt-get purge linux-headers-3.2.0-41 linux-headers-3.2.0-44 linux-headers-3.2.0-45 linux-headers-3.2.0-48
I voilà, ale oczywiście był też problem ikon Obudzony więc decyduję się przenieść je do ~ / .icons i udostępnić je dla całego systemu, po prostu tworzę symboliczne dowiązanie w / usr / share / icons, pierwszy wynik df-i To z eliminacją nagłówków i drugim po przesunięciu ikon.
Dzięki temu problem jest rozwiązany i mogę bez problemu zainstalować / zaktualizować pakiety, mam nadzieję, że ten post będzie komuś pomocny lub posłuży jako odniesienie w przyszłości do instalacji na małych partycjach i zdemistyfikuje temat tak rozpowszechniany przez fora o braku Przestrzeni.
Cześć, użyj poprawki ubuntu ( http://ubuntu-tweak.com ) To jest jak strojenie dla Windows, pomaga usunąć dużo śmieci, a przy okazji bezpiecznie odinstalowuje stare jądra, jednak zostawia poprzednie jądro do załadowania, czasami ostatnie jądro nie działało i udało mi się wejść do systemu dzięki nieusunięciu ich wszystkich.
Znam go od dawna, ale zawsze wolałem robić to po swojemu i rozumieć, jak to działa, i tak, nawet bez pary starych nagłówków, z którymi był problem, prezentowałby się mniej więcej tak samo czas więc motywy ikon, a ostatecznie, jak wspomniałem, NIE jest to problem braku miejsca, ale użytych i-węzłów.
Dziękuję za udostępnienie tego. Jak dotąd nie miałem tego problemu, ponieważ dyski, których używam, są w formacie Linuksa, bez okien, ponieważ nie mam tego systemu na swoim komputerze.
Więc będę o tym pamiętać, na wypadek, gdyby któregoś dnia zobaczyłem ten problem.
Problem nie wynika z posiadania partycji z systemem Windows (jest to po prostu osobliwość mojego przypadku), ale z posiadania małych partycji root, mniejszych niż 10 Gb, gdzie instalator używa domyślnych opcji mke2fs (który formatuje partycje) i pozostawia z małą liczbą i-węzłów ze względu na swój rozmiar i jak zwykle jest to prawie normalne, wszystkie nasze partycje są w EXT4, które ustawia tę liczbę podczas tworzenia i nie można jej później zmodyfikować.
Jak widać, jest to coś, co odstrasza ludzi od Linuksa i kończy się powrotem do Windows. Jak myślisz, jak zwykły użytkownik w takiej sytuacji może rozwiązać problem?
nie musisz tracić czasu na naprawianie i konfigurowanie tego typu rzeczy i marnowanie produktywnego czasu.
Miguel de Icaza miał rację z tym, co powiedział i dlatego zdecydował się przejść na Maca, ponieważ WSZYSTKO tam DZIAŁA, kropka.
Otóż to. W OS X wszystko działa pięknie .. Nie ma sensu w tym momencie tłumaczyć, dlaczego autor postu się skomentował, więc proszę nie podawać tego komentarza. Skończy się płomieniem.
W moim przypadku Debian działa na moim komputerze i okazuje się, że użyłem DVD jako dodatkowego repozytorium do aktualizacji z Squeeze do Wheezy. Więc każdy może aktualizować.
Więc masz umysł użytkownika systemu Windows.
GNU / Linux jest dla Ciebie wielki.
pozdrowienia
to jest interesujące.
Ten błąd występuje bardzo często podczas instalowania gentoo na małych dyskach, przy tak wielu małych plikach źródłowych i partycji kończy się i-węzły, nawet jeśli zostało 60% wolnego miejsca. Przynajmniej podręcznik naprawia to, wpisując mke2fs -j -T small / dev / sdaX, prawdopodobnie działa na systemie ubuntu. Zanim zagram w dziwne ustawienia 😛
Dokładnie, jak wspomniałem wcześniej, możesz określić stosunek bajtów i-węzłów za pomocą opcji -i, ale jest też opcja, o której wspomniałeś -T używa jednego z domyślnych trybów w pliku konfiguracyjnym o nazwie /etc/mke2fs.conf, w w tym przypadku small zastosuje rozmiar bloku = 1024, rozmiar i-węzła = 128 i stosunek bajtów-i-węzłów = 4096.
Doskonałe!
Jest to typowy problem, który zjada twoją głowę przez długi czas, zanim zdasz sobie sprawę, skąd się wziął.
+10 za wyjaśnienie 😀
Jak mówisz, dobrze się bawiłeś zabijając moją głowę! Dziękuję bardzo za komentarz, pochodzący od kogoś, kto wie tyle, co ty, to zaszczyt!
Doskonale !!, nauczyłem się czegoś innego i pomogło mi to odzyskać około 19 MB poprzez usunięcie starego nagłówka, a także odzyskanie niektórych i-węzłów. Teraz mam więcej miejsca do zainstalowania. Ponieważ jestem całkiem nowicjuszem w Linuksie, jeśli wydaje ci się to dobre, zachęcam do napisania posta o tym, jak sformatować, aby uzyskać jak największą liczbę i-węzłów i czy można to zrobić z zachowaniem informacji o dysku, czy nie.
Pozdrowienia i podziękowania
Jak wspomniałem we wskazaniu na początku wpisu, jest to bardzo rzadki problem i jest związany z małymi partycjami root (<10GB), tak jak w moim przypadku, przy innych rozmiarach jest mało prawdopodobne. Teraz, jeśli chodzi o zmianę ilości i-węzłów, o czym również wspomniałem we wpisie, nie da się tego zrobić bez sformatowania w partycjach typu EXT4, więc nie można było zachować informacji na dysku bez uprzedniego wykonania kopii zapasowej, aby zmień proporcje i-węzłów w bajtach użyj opcji -i w poleceniu mke2fs lub jednej z opcji skojarzonych z -T (małe, duże, ogromne itp.).
Doskonały! Przedstawienie problemu, wyjaśnienie, dlaczego tak się stało, jego podstawy i kroki rozwiązania! Nazywam to doskonałym wkładem! Dzięki Rayonant!
Dzięki za artykuł, bardzo mi pomógł. Próbowałem wszystkiego, aby przezwyciężyć ten błąd i usuwając stare nagłówki i ich zależności z aptitude, byłem w stanie ponownie zainstalować programy i dokonać aktualizacji. Dziękuję Ci!
Przydarzył mi się ten sam problem, nic się nie stało i wywrócił mnie do góry nogami hahaha. W moim przypadku partycja główna miała całkiem sporo wolnej pamięci, ale wykorzystano w niej 100% i-węzłów! Chodzi o to, że jeśli używasz tej samej dystrybucji przez długi czas i nie usuwasz starego jądra z czasem, zaległości są straszne. W moim przypadku udało mi się rozwiązać problem w podobny sposób jak to ująłeś, tyle że sudo apt-get remove lub purge nie działało dla mnie i kluczem do usunięcia tych nieużywanych plików jądra było użycie sudo dpkg –remove i –purge, i jeden po drugim mogłem zwolnić i-węzły. Wszystko, czego się uczysz. Żałuję, że nie znalazłem tego wpisu wcześniej, bo wcześniej bym sprawę rozwiązał. Dzięki za szkicowanie, czym jest i-węzły, nie miałem zbytniego pojęcia.
Świetny blog, pozdrawiamy!
Jesteś groso i chociaż jest to uciążliwe, jest to całkiem dobrze rozumiane. Zrobiłem wszystko co do litery, ale nie mogę usunąć poprzednich nagłówków linuxa, to mi nie pozwala, stawia mnie
E: dpkg został przerwany, musisz ręcznie uruchomić „sudo dpkg –configure -a”, aby naprawić problem
Wykonuję to, co mi mówi, i to mnie tworzy
Ustawienie openshot (1.4.0-1ubuntu1) ...
Traceback (ostatnie połączenie ostatnio):
Plik „/ usr / sbin / update-python-modules”, wiersz 478, w
package.install (py_installed)
Plik „/ usr / sbin / update-python-modules”, wiersz 112, w instalacji
os.symlink (nazwa pliku, ścieżka docelowa)
OSError: [Errno 2] Nie ma takiego pliku lub katalogu
Błąd w sys.excepthook:
Traceback (ostatnie połączenie ostatnio):
Plik „/usr/lib/python2.7/dist-packages/apport_python_hook.py”, wiersz 128, w apport_excepthook
os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o640), 'w')
OSError: [Errno 28] Brak miejsca na urządzeniu: „/var/crash/_usr_sbin_update-python-modules.0.crash”
Pierwotnym wyjątkiem był:
Traceback (ostatnie połączenie ostatnio):
Plik „/ usr / sbin / update-python-modules”, wiersz 478, w
package.install (py_installed)
Plik „/ usr / sbin / update-python-modules”, wiersz 112, w instalacji
os.symlink (nazwa pliku, ścieżka docelowa)
OSError: [Errno 2] Nie ma takiego pliku lub katalogu
dpkg: błąd podczas przetwarzania openshot (–konfiguruj):
wątek zainstalował skrypt poinstalacyjny zwrócił kod zakończenia błędu 1
dpkg: błąd: nie udało się otworzyć `/ var / lib / dpkg / status ', aby zapisać status bazy danych: Brak miejsca na urządzeniu
Pytanie brzmi, co mam na sobie?
Dziękuję Ci bardzo! Ten post bardzo mi pomógł.
Ole!!!
Nie tylko rozwiązujesz trudny problem, ale ja się uczę (i cieszę) po drodze
Cześć. Przede wszystkim dzięki za post ...
Po drugie, niestety mi to nie pomogło. Doszedłem do tego z powodu problemu zepsutego pakietu, którego system nie pozwala mi rozwiązać z powodu braku miejsca, który w rzeczywistości z tego, co tutaj wyjaśniono, to węzły i.
Próbowałem więc wyczyścić stare jądra, zgodnie z sugestią, ale system mi nie pozwala:
juan @ juan-P29G: ~ $ sudo apt-get purge linux-image-3.2.0-29-generic-pae
Czytanie listy pakietów ... Gotowe
Tworzenie drzewa zależności
Czytanie informacji o stanie ... Gotowe
Możesz chcieć uruchomić „apt-get -f install”, aby to poprawić:
Następujące pakiety mają niespełnione zależności:
tzdata-java: Zależy: tzdata (= 2014i-0ubuntu0.12.04), ale 2014e-0ubuntu0.12.04 zostanie zainstalowany
E: Zależności niespełnione. Wypróbuj „apt-get -f install” bez pakietów (lub określ rozwiązanie).
A kiedy postępuję zgodnie z radą systemu:
juan @ juan-P29G: ~ $ sudo apt-get -f install
Czytanie listy pakietów ... Gotowe
Tworzenie drzewa zależności
Czytanie informacji o stanie ... Gotowe
Poprawianie zależności ... Gotowe
Zostaną zainstalowane następujące dodatkowe pakiety:
tzdata
Następujące pakiety zostaną zaktualizowane:
tzdata
1 zaktualizowane, 0 zostaną zainstalowane, 0 do usunięcia, a 23 nie zostanie zaktualizowanych.
1 nie w pełni zainstalowany lub usunięty.
Należy pobrać 0 B / 461 kB plików.
Po tej operacji zostanie zwolnione 31,7 kB.
Czy chcesz kontynuować [T / n]? s
Wstępna konfiguracja pakietów ...
(Czytanie bazy danych… 893468 plików lub katalogów aktualnie zainstalowanych.)
Przygotowuję do zastąpienia tzdata 2014e-0ubuntu0.12.04 (przy użyciu… / tzdata_2014i-0ubuntu0.12.04_all.deb)…
Rozpakowanie zamiennika tzdata ...
dpkg: przetwarzanie błędów /var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb (–unpack):
Nie można wykonać kopii zapasowej łącza symbolicznego dla `./usr/share/zoneinfo/posix/America/Santo_Domingo ': Brak miejsca na urządzeniu
Raport „apport” nie został zapisany, ponieważ komunikat o błędzie wskazuje, że dysk jest pełny
Wystąpiły błędy podczas przetwarzania:
/var/cache/apt/archives/tzdata_2014i-0ubuntu0.12.04_all.deb
E: Sub-process / usr / bin / dpkg zwrócił kody błędów 1)
Błędne koło ... W każdym razie zobaczę, co da się zrobić.
Pozdrowienia.
Witam ponownie… Wiem, jak przerwać błędne koło.
Usunę obraz najstarszego z jąder za pomocą tego polecenia:
sudo dpkg – usuń linux-image-3.2.0-29-generic-pae
Dzięki temu uzyskuję 4389 i-węzłów, wystarczających do naprawy zepsutego pakietu, a następnie usuwam starsze nagłówki jądra, jak wskazano w poście.
A teraz odzyskam więcej i-węzłów, usuwając kilka starych jąder ...
Dzięki i pozdrawiam, Juan Carlos.
Nie pozwolił mi usunąć nagłówków
Napisałem
sudo nautilus
I przeszedłem do folderu / usr / src
Tam widziałem pliki „nagłówkowe” i usunąłem je
Tym samym pozwolił mi już złożyć zamówienie autoraove
Dziękuję Ci!! post może być trochę stary, ale nadal jest bardzo przydatny, problem rozwiązany za pomocą i-węzłów
Rayonant: przykładowe wyjaśnienie.
Chociaż w moim przypadku musiałem rozbudować partycję (z Gparted), to Twój post pomógł mi zrozumieć problem. Po wykonaniu twojej metody przeszedłem z 90% zajętych i-węzłów (po rozszerzeniu partycji) do tylko 28%.
Dziękuję Ci bardzo. Będę go używać od teraz, aby wyeliminować stare jądra (i nagłówki).
Dziękuję również Juanowi Carlosowi (miałem ten sam problem).
Uścisk.
Ciekawy post,
W moim przypadku spadłem ze 100% do 9%
root @ pi: / home / pi # apt-get clean
root @ pi: / home / pi # df -i
S. pliki Nodes-i NUsados NLibres NUso% Zamontowane na
/ dev / root 1915424 1915288 136% /
później odkryłem, że ntopng burze dotykają mojego nosa, wyeliminowałem je i ...
root @ pi: / home / pi # rm -rf / var / tmp / ntopng /
Tachán !!!
root @ pi: / # df -i
S. pliki Nodes-i NUsados NLibres NUso% Zamontowane na
/ dev / root 1915424 160408 1755016 9% /
Dziękuję