Mam 200 MB przypisanych do /boot
partycji. Ilekroć próbuję zaktualizować jądro, /boot
pojawia się komunikat o błędzie, który w zasadzie stwierdza, że jest pełny.
Co mogę zrobić, aby wyczyścić /boot
i usunąć / wykonać kopię zapasową starszych jąder?
kernel
boot-partition
koba101
źródło
źródło
Odpowiedzi:
Metoda wiersza poleceń:
Najpierw sprawdź wersję jądra, aby nie usuwać używanego obrazu jądra, uruchamiając:
Teraz uruchom to polecenie, aby wyświetlić listę zainstalowanych jąder:
i usuń jądra, których już nie potrzebujesz / potrzebujesz, uruchamiając to:
Zamień VERSION na wersję jądra, którą chcesz usunąć.
Po zakończeniu usuwania starszych jąder możesz uruchomić to, aby usunąć pakiety, których już nie potrzebujesz:
I w końcu możesz uruchomić to, aby zaktualizować listę jądra gruba:
źródło
sudo dpkg --list 'linux-image*' | grep ^ii
sprawia, że trochę łatwiej jest zobaczyć tylko zainstalowane jądra. Myślę też, żeupdate-grub
jest nieszkodliwy, ale nie jest absolutnie konieczny, jest uruchamiany automatycznie po odinstalowaniu jądra.sudo dpkg --list 'linux-image*' | grep ^ii | awk '{print $2}' | sort | egrep "[0-9]-generic" | head -n -3 | tr '\n' ' '; echo ""
aby uzyskać listę nazw pakietów, których chcesz używaćsudo apt-get remove
.head -n -3
służy do przechowywania 3 najnowszych jąder w systemie.apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
sudo apt-get autoremove
powinno wystarczyć (zazwyczaj pozostawiając ci ostatnie 3 jądra)/boot
jest pełny, więcapt-get
nie powiedzie się z jakimś kodem błędu lub innym. Poniższa odpowiedź jest nieco „hackier” (muszę przyznać, musiałem stali się do kwestii, którarm -rf
w/boot
), ale jedynym, który może pracować w tej sytuacji.UWAGA: dzieje się tak tylko wtedy, gdy nie można użyć apt do czyszczenia ze względu na 100% pełnego / rozruchu
Jeśli apt-get nie działa, ponieważ twój / boot ma 100%, musisz najpierw wyczyścić / boot. Prawdopodobnie złapało to aktualizację jądra podczas częściowej instalacji, co oznacza, że apt prawie całkowicie się zawiesił i będzie ci mówił, abyś uruchomił,
apt-get -f install
nawet jeśli to polecenie nadal nie działa .Pobierz listę obrazów jądra i określ, co możesz zrobić bez. To polecenie wyświetli zainstalowane jądra oprócz aktualnie uruchomionego
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
. Zwróć uwagę na dwie najnowsze wersje na liście. Nie musisz się martwić o działający, ponieważ nie ma go tutaj. Możesz to sprawdzić za pomocąuname -r
.Utwórz polecenie, aby usunąć wszystkie pliki w / boot jądra, które nie mają dla ciebie znaczenia, używając rozszerzenia nawiasów, aby zachować rozsądek. Pamiętaj, aby wykluczyć bieżące i dwa najnowsze obrazy jądra. Przykład:
sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*
. Możesz także użyć zakresu ze składnią {80..84}.sudo apt-get -f install
by usunąć to, co sprawia, że apt jest zrzędliwy w związku z częściową instalacją.Jeśli napotkasz błąd zawierający wiersz „Błąd wewnętrzny: nie można znaleźć obrazu (/boot/vmlinuz-3.2.0-56-generic)”, uruchom polecenie
sudo apt-get purge linux-image-3.2.0-56-generic
(z odpowiednią wersją).Wreszcie,
sudo apt-get autoremove
aby usunąć stare pakiety obrazów jądra, które zostały osierocone przez ręczne czyszczenie systemu.Sugestie, uruchom
sudo apt-get update
isudo apt-get upgrade
zajmij się wszelkimi aktualizacjami, których kopie zapasowe mogły zostać utworzone podczas oczekiwania na odkrycie pełnej partycji / boot.Sugestia 2, przejrzyj https://help.ubuntu.com/community/AutomaticSecurityUpdates i rozważ ustawienie Unattended-Upgrade :: Remove-Unused-Dependencies na true w /etc/apt/apt.conf.d/50unattended-upgrades. Będzie to równoznaczne z uruchomieniem autoraove po każdej aktualizacji zabezpieczeń, aby mieć pewność, że wyczyścisz nieużywane jądra, ale usuniesz także inne rzeczy, które według Ciebie są nieużywane, ratując cię od tego problemu w przyszłości.
źródło
dpkg --purge
na pełnym bagażniku otrzymasz następujące$ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic
df -i
dowiedziałem się, że zabrakło mi również i-węzłów z/
powodu ogromnej ilości plików dla kodu źródłowego starszych jąder w/usr/src
Dokumentacja na ten temat znajduje się na stronie https://help.ubuntu.com/community/RemoveOldKernels
Podsumowując: Użyj
purge-old-kernels
Narzędzie może być zainstalowany poprzezsudo apt install byobu
. Oto opis ze strony man:Jeśli potrzebujesz rozwiązania kopiuj-wklej, inżynier ReSearchIT zaproponował następujące:
źródło
apt-get autoremove --purge
powinno wystarczyć.Odkryłem, że o wiele łatwiej jest porzucić małą partycję i przejść
/boot
do katalogu głównego. Zapobiega to również problemom związanym z brakiem miejsca w przyszłości.Najpierw przenieś dane z partycji rozruchowej do katalogu głównego (uruchom jako
sudo -s
):Usuń (lub skomentuj)
/boot
wpis w/etc/fstab
:Zaktualizuj grub i upewnij się, że wszystko jest w porządku:
apt
powinien być teraz w stanie zaktualizować bez problemów.Pozostawia to nieużywaną partycję 200 MB (której możesz użyć do czegoś innego, jeśli okaże się, że warto).
źródło
Usuwanie starych jąder (aby zwolnić miejsce na / boot) patrz: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot
Następnie uruchomić
źródło
sudo apt-get autoremove
Usuwa to wszystkie ostatnie 2 jądra. Testowany na Ubuntu 16.04 LTS, gdy
/boot
miał 100% pojemności iapt-get upgrade
nie powiódł się, to jego ostatnia aktualizacja jądra. Jądro autoraove jest iteracyjne, więc jeśli masz kilka jąder, będą one usuwane pojedynczo. Więc bądź cierpliwy.źródło
Dlaczego robisz to ręcznie, skoro możesz to zrobić za pomocą narzędzia? Wiesz, że będziesz go potrzebować ponownie za 30 sekund, ponieważ w tych dniach potrzeba 30 sekund na przesłanie nowej aktualizacji jądra = P
Polecam korzystanie z tego narzędzia, bootnukem
Następnie
Usuń,
--dry-run
gdy potwierdzisz, że wygląda bezpiecznieźródło