Próbuję to zrobić, do-release-upgrade
ale otrzymuję:
Za mało wolnego miejsca na dysku
Aktualizacja została przerwana. Aktualizacja wymaga w sumie 25,7 M wolnego miejsca na dysku „/ boot”. Zwolnij co najmniej dodatkowe 25,7 M miejsca na dysku podczas „/ boot”. Opróżnij kosz i usuń tymczasowe pakiety wcześniejszych instalacji, używając „sudo apt-get clean”.
Wyjście df
:
237251272 214797108 10402504 96% /
udev 488120 4 488116 1% /dev
tmpfs 198676 668 198008 1% /run
none 5120 0 5120 0% /run/lock
none 496684 0 496684 0% /run/shm
/dev/sda1 233191 225867 0 100% /boot
Dlaczego nie ma miejsca na bagażniku? Oto wynik ls -as /boot
:
total 221839
4 .
4 ..
645 abi-2.6.32-34-generic-pae
698 abi-2.6.35-30-generic-pae
727 abi-2.6.38-12-generic-pae
727 abi-3.0.0-12-generic-pae
727 abi-3.0.0-13-generic-pae
727 abi-3.0.0-14-generic-pae
727 abi-3.0.0-15-generic-pae
727 abi-3.0.0-16-generic-pae
727 abi-3.0.0-17-generic-pae
727 abi-3.0.0-19-generic-pae
761 abi-3.0.0-20-generic-pae
115 config-2.6.32-34-generic-pae
128 config-2.6.35-30-generic-pae
136 config-2.6.38-12-generic-pae
140 config-3.0.0-12-generic-pae
140 config-3.0.0-13-generic-pae
140 config-3.0.0-14-generic-pae
140 config-3.0.0-15-generic-pae
140 config-3.0.0-16-generic-pae
140 config-3.0.0-17-generic-pae
140 config-3.0.0-19-generic-pae
140 config-3.0.0-20-generic-pae
5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
12 lost+found
174 memtest86+.bin
176 memtest86+_multiboot.bin
1700 System.map-2.6.32-34-generic-pae
1841 System.map-2.6.35-30-generic-pae
2115 System.map-2.6.38-12-generic-pae
2141 System.map-3.0.0-12-generic-pae
2141 System.map-3.0.0-13-generic-pae
2143 System.map-3.0.0-14-generic-pae
2146 System.map-3.0.0-15-generic-pae
2147 System.map-3.0.0-16-generic-pae
2147 System.map-3.0.0-17-generic-pae
2148 System.map-3.0.0-19-generic-pae
2149 System.map-3.0.0-20-generic-pae
2 vmcoreinfo-2.6.32-34-generic-pae
2 vmcoreinfo-2.6.35-30-generic-pae
2 vmcoreinfo-2.6.38-12-generic-pae
2 vmcoreinfo-3.0.0-12-generic-pae
2 vmcoreinfo-3.0.0-13-generic-pae
2 vmcoreinfo-3.0.0-14-generic-pae
2 vmcoreinfo-3.0.0-15-generic-pae
2 vmcoreinfo-3.0.0-16-generic-pae
2 vmcoreinfo-3.0.0-17-generic-pae
2 vmcoreinfo-3.0.0-19-generic-pae
2 vmcoreinfo-3.0.0-20-generic-pae
4092 vmlinuz-2.6.32-34-generic-pae
4347 vmlinuz-2.6.35-30-generic-pae
4567 vmlinuz-2.6.38-12-generic-pae
4675 vmlinuz-3.0.0-12-generic-pae
4676 vmlinuz-3.0.0-13-generic-pae
4681 vmlinuz-3.0.0-14-generic-pae
4698 vmlinuz-3.0.0-15-generic-pae
4700 vmlinuz-3.0.0-16-generic-pae
4700 vmlinuz-3.0.0-17-generic-pae
4703 vmlinuz-3.0.0-19-generic-pae
4705 vmlinuz-3.0.0-20-generic-pae
Wyjście uname -a
:
Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux
upgrade
kernel
disk-usage
Zacisk
źródło
źródło
ls -l /boot
iuname -a
do niego.dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
do swojego pytania.ls -as /boot
może być przydatne zamiast tego. Będzie zawierał tylko rozmiary plików.Odpowiedzi:
Partycja / boot jest wypełniona starymi jądrami. Czasami tak się dzieje, nie jestem pewien, dlaczego nigdy tego nie naprawiono. Możesz łatwo usunąć stare jądra, jeśli wiesz, w których pakietach się znajdują.
Najpierw sprawdź,
uname -a
czy masz aktualną wersję.Następnie uruchom następujące polecenie:
To polecenie wyświetli listę wszystkich pakietów, których już nie potrzebujesz. Nie lubię ich usuwać automatycznie, lubię mieć kontrolę nad usuwaniem jąder. Dlatego dla każdego wymienionego pakietu wykonaj następujące czynności:
Intermezzo
To intermezzo opisuje bardziej szczegółowo działanie poleceń i próbuje rozwiązać problem
linux-libc-dev:amd64
. Większość użytkowników może pominąć ten akapit.dpkg -l 'linux-*'
wyświetla listę wszystkich pakietów, których nazwa zaczyna się od „linux-”sed '/^ii/!d; remove all lines that do *not* start with
ii`uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"
znajdź bieżącą wersję jądra/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d
Usuń wszystkie linie, z wyjątkiem tych, które zawierają bieżący numer wersji jądras/^[^ ]* [^ ]* \([^ ]*\).*/\1/
Dla każdej listy linii tylko nazwa pakietu/[0-9]/!d
Usuń linie, które nie zawierają liczb.Aby naprawić problem Fredericka Norda, myślę, że polecenie można zmienić w następujący sposób:
Zasadniczo dodaje dodatkowy filtr:
linux-headers
lublinux-image
/Intermezzo
Gdzie
some-kernel-package
można zastąpić jednym z wymienionych pakietów. Uważaj tylko, aby nie usunąć aktualnie używanych pakietów jądra (wymienionych przezuname -a
), np.sudo apt-get purge -y linux-headers-3.0.0-12
itp.Można go zautomatyzować dalej za pomocą polecenia xargs, ale mi się to nie podoba. To jest sprawa osobista. Oto jednak polecenie:
Tak to
/boot
wygląda, jedno zapasowe jądro (2.6.38-11) na wszelki wypadek i 3.2.0-24 są aktualne:I wykorzystanie systemu plików:
źródło
It does that sometimes, not sure why it is never fixed
Ubuntu zdecydowało się na lepsze lub gorsze, aby zapewnić regularne nowe jądra jako nowe pakiety, a nie jako aktualizacje istniejących pakietów, aby dać możliwość zainstalowania wielu jąder i przełączania się między nimi do woli. Zgadzam się, że to założenie nie pasuje do 95% osób, które chcą tylko najnowszego jądra (i być może jednej rezerwy w przypadku nowych problemów z uruchamianiem) i które nie chcą samodzielnie zarządzać zainstalowanymi jądrami. Być może w przyszłości Ubuntu zmieni to zachowanie. Na razie upewnij się, że Twój / boot jest ogromny.sudo apt-get autoremove
załatwił sprawę, skutecznie wyczyścił wszystkie nieużywane pakiety jądra.
źródło
man apt-get
autorove służy do usuwania pakietów, które zostały automatycznie zainstalowane w celu spełnienia zależności dla niektórych pakietów i które nie są już potrzebne. jądro nie zostanie zainstalowane w celu spełnienia zależności, są instalowane podczas aktualizacji./dev/sda1, 240M total, 171M used, 57M free, 75% used /boot
po:/dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
Odpowiednik przyjętej odpowiedzi - innym (być może) łatwiejszym sposobem jest zainstalowanie
ubuntu-tweak
narzędzia, które można pobrać stąd . Przejdź do „Dozorca” i wybierz „Stare jądro”, aby wyczyścić. Można to zrobić za pomocą kilku kliknięć. (testowany na komputerze 14.04)źródło
/boot
zdarza się cały czas, więc jest to moje ulubione rozwiązanie - łatwa do uruchomienia aplikacja, która wykonuje zadanie jednym kliknięciem.W porównaniu z innymi odpowiedziami GUI tutaj zaletą tej odpowiedzi jest to, że Ubuntu Bash jest używany bez instalowania aplikacji innych firm.
Rozwiązanie oparte na Zenity i Bash
Zenity zapewnia przyjemny interfejs GUI do terminala do przetwarzania listy i wybierania elementów za pomocą przycisków opcji :
Bieżącego jądra, z którego uruchomiłeś system, nie można usunąć i nie ma go na liście. Podany rozmiar określa, ile zostanie zapisanych w
/boot
katalogu. Więcej jest zapisywane na dysku, ponieważ pliki binarne jądra znajdują się również w innych obszarach. Uwaga z 27 lipca 2017: Katalogi/usr/src/*kernel_version*
i/lib/modules/*kernel_version*
teraz również są uwzględnione.Data modyfikacji zostaje odkryta za pomocą
stat
polecenia. W moim systemie ta data jest „dotykana” za każdym razem, gdy jądro jest uruchamiane przy użyciu tego ( Jak dowiedzieć się, kiedy konkretna wersja jądra była ostatnio uruchamiana? ) Skrypt restartu cron . Jednak w twoim systemie data będzie datą wydania jądra, a nie ostatnim uruchomieniem systemu.apt-get purge
daje szansę na przerwanie ciążyMasz ostatnią okazję, aby zobaczyć wszystko, co zostanie wyczyszczone i zobaczyć całkowite miejsce na dysku (nieco mylące), które zostanie odzyskane:
Kod
Skopiuj ten kod do pliku wykonywalnego o nazwie
rm-kernels
w/usr/local/bin
:UWAGA: Aby utworzyć plik, potrzebujesz uprawnień sudo, więc użyj:
Aby użyć pliku wykonywalnego:
UWAGA: W przypadku wersji skryptu dla serwera (tekstowej, a nie graficznej) zobacz: Jak usunąć stare wersje jądra, aby wyczyścić menu startowe?
Aktualizacje z 28 lipca 2017 r
Pobrano obliczony rozmiar każdego jądra, z
/boot/*kernel_version*
którego było 5 plików o łącznej ~ 50 MB. Formuła uległa zmianie, aby uwzględnić pliki w/usr/src/*kernel_version*
i/lib/modules/*kernel_version*
. Obliczony rozmiar każdego jądra wynosi teraz ~ 400 MB. Powyższy kod dlarm-kernels
irm-kernels-server
został zaktualizowany. Jednak powyższe przykładowe ekrany nie odzwierciedlają jeszcze tych zmian.Domyślnie szacuje się rozmiar plików nagłówków linuksa na 125 MB i obrazu linux na 220 MB, ponieważ
du
może być boleśnie powolny, chyba że pliki są w pamięci podręcznej. Aby uzyskać rzeczywisty rozmiar, użyjdu
dowolnego parametru do skryptu.Suma wszystkich rozmiarów jądra (z wyjątkiem bieżącej wersji, której nie można usunąć) jest teraz wyświetlana na pasku tytułu.
Okno dialogowe używane do wyświetlania daty ostatniego dostępu każdego jądra . Ta data może zostać masowo nadpisana dla wszystkich jąder podczas tworzenia kopii zapasowej lub podobnych operacji. Okno dialogowe pokazuje teraz zamiast tego datę modyfikacji .
źródło
Możesz łatwo obsługiwać jądra za pomocą menedżera pakietów synaptic. Ale najpierw powinieneś znać aktualnie używaną nazwę wydania jądra, w linii poleceń:
linux@linux-desktop:~$ uname -r 4.4.0-75-generic
Więc przynajmniej ta wersja powinna pozostać nietknięta. Otwórz synaptic i zacznij wypełniać symbol zastępczy szybkiego filtru, jak pokazano poniżej: Teraz możesz wybrać wszystkie pakiety, które chcesz usunąć, i wykonaj następujące czynności: Zaznacz do całkowitego usunięcia -> Zastosuj . Sugerowałbym zachować przynajmniej najnowszy aktualny pakiet jądra i jedno poprzednie jądro. Na przykład w tym przypadku możesz bezpiecznie pozbyć się linux-image-4.4.0-66-generic i linux-image-extra-4.4.0-66-generic , ale dobrze jest zachować 4.4.0-72 i oczywiście 4.4.0–75 .źródło
Dla ułatwienia linii poleceń:
https://github.com/erichs/bootnukem
Następnie
źródło
Działa na Linux Mint 18.3 (oparty na Ubuntu 16.04).
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes
Źródło: https://ubuntuforums.org/showthread.php?t=2248846&p=13146650#post13146650
źródło