„Podczas rozruchu woluminu pozostało tylko 0 bajtów miejsca na dysku”

32

Po ostatniej aktualizacji pojawia się ostrzeżenie:

The volume boot has only 0 bytes disk space remaining

Ale mój komputer ma dużo wolnego miejsca HD. Czy ktoś wie, jak to rozwiązać? (Jeśli jest to istotne, używam funkcji szyfrowania całego dysku alternatywnego obrazu instalacyjnego dla Ubuntu 12.04).

użytkownik924731
źródło
To naprawdę zależy od tego, jak zainstalowałeś Ubuntu na swoim komputerze. Czy możesz „sudo fdisk -l” w terminalu i sprawdzić, czy mała partycja jest prawie pełna?
Paulius Šukys
4
Co więcej, uruchom polecenie „df -H -x tmpfs -x devtmpfs” bez cudzysłowów i wklej tutaj dane wyjściowe.
fabricator4,
To pytanie i odpowiedzi są związane z problemem i mogą pomóc.
elomage
najwyraźniej znany problem z zaszyfrowaną partycją. odpowiedź askubuntu.com/a/230942/231504 jest świetna - działa dla mnie. Jednak proszę również zwiększyć liczbę dotkniętych użytkowników w trackerze
pestophagous

Odpowiedzi:

48

Aby wyświetlić listę wszystkich jąder:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

Wyniki wyglądają mniej więcej tak:

linux-image-3.19.0-7-generic 
linux-image-3.18.0-13-generic  
linux-image-3.16.0-23-generic

Nie usuwaj wszystkich jąder, tylko starych!

Następnie usuńmy jądro 3.16,
sudo apt-get purge linux-image-3.16.0-23-generic

a następnie wszystkie nieużywane pakiety z systemu:
sudo apt-get autoclean && sudo apt-get autoremove

Paradiesstaub
źródło
Też extradzwoniłem, np. Oba linux-image-3.13.0-40-generici linux-image-extra-3.13.0-40-generic. Czy mogę usunąć te za pomocą extra?
Mads Skjern
Było to niezwykle pomocne, ale nie rozwiązało całkowicie mojego problemu (czyszczenie starego jądra nadal nie powiodło się). Musiałem ręcznie usunąć niektóre stare pliki jądra. Znalazłem kilka dużych find /boot/ -type f | xargs du | sort -n. Jądro jest aktualnie uruchomiony 3.13.0-66-generic, więc jestem ostrożny, aby usunąć wszystko związane z tym, ale nie usunąć następujące elementy: sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-generic. Wreszcie uruchomienie czyszczenia na starym jądrze się powiodło.
blong
4
jeśli naprawdę masz 0 bajtów wolnych, to nie zadziała jak powiedział @blong. musisz wcześniej ręcznie usunąć stary plik vmlinuz, ponieważ proces czyszczenia musi utworzyć niektóre pliki, a jeśli pozostanie 0 bajtów, nie powiedzie się.
pomarc
1
Skąd mam wiedzieć, które jądra są stare? Moje wyjście to Linux-image-4.10.0-42-ogólny Linux-obraz-4.13.0-26-ogólny Linux-obraz-4.13.0-32-ogólny Linux-obraz-4.13.0-37-ogólny Linux-obraz -4.13.0-38-ogólny Linux-image-4.13.0-39-ogólny Linux-image-4.13.0-41-ogólny Linux-image-4.13.0-43-ogólny Linux-image-4.8.0-36 -generic
jacob
25

Przyczyną były rzeczywiście stare obrazy jądra.
Aby posprzątać, wystarczyło uruchomić jedną linię:

sudo apt-get autoclean && sudo apt-get autoremove

To automatycznie rozpoznało stare jądra i usunęło je.

Selah
źródło
9

Być może twoja /bootpartycja zgromadziła zbyt wiele wersji jądra podczas aktualizacji. Ta partycja prawdopodobnie będzie oddzielna od partycji dużego dysku (zamontowanej jako /). Możesz sprawdzić /bootprzestrzeń partycji w ten sposób (poszukaj linii za pomocą / boot):

df -h

Jest ładna strona na temat usuwania starych jąder .

Krótko mówiąc, sprawdź aktualną wersję jądra, uzyskaj listę zainstalowanych programów, a następnie apt-get usuń stare wersje. Na stronie znajduje się również „magiczne” polecenie jednowarstwowe, które zrobi to wszystko za Ciebie. Ale używaj go na własne ryzyko.

Instrukcje bardziej szczegółowo:

  1. Pobierz aktualną wersję jądra, tę, którą chcesz zachować :

    uname -r
    
  2. Pobierz listę wszystkich zainstalowanych jąder:

    dpkg -l | grep linux-image-
    
  3. Uruchom apt-get remove na jądrach, które chcesz usunąć. Nie w najnowszym ! Na przykład:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

Więcej notatek:

  • dpkg -lpowie ci status pakietu (jądra) przed nazwą pakietu. Na przykład:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • „rc” oznacza, że pakiet jest r emoved i ma c onfiguration plików. Nie musisz ich już usuwać.
    • „II” oznacza, że pakiet jest oznaczony do I NSTALACJA i ja nstalled

    Na tej podstawie można wyświetlić tylko zainstalowane pakiety jądra:

    dpkg -l | grep "ii.*linux-image-"
    

Alternatywne rozwiązanie przy użyciu narzędzia GUI Ubuntu Tweak .

Zainstaluj i przejdź do Computer Janitor, sprawdź System-> Old Kernel and System-> Niepotrzebne pakiety i naciśnij Clean.

elomage
źródło
3

Użyj tego skryptu, aby usunąć wszystkie pozostałe stare jądra, pozostawiając bieżącą i poprzednią wersję (ostatnia 1 wersja jądra)

KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`

KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`

for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do

apt-get autoremove -y && apt-get purge $PURGEKERNEL -y

done
PKumar
źródło
Działa idealnie, nawet gdy nie mogłem odpowiedzieć „Paradiesstaub” z wiersza poleceń.
huczne
Dostaję „Odmowa zezwolenia” ...
Richard Hardy