🢂Usuwania starych, nieużywanych jąder

Kod ten usuwa starsze wersje jądra Linuxa i ich nagłówki, ale sposób, w jaki to robi, prowadzi do pozostawienia więcej niż jednej wersji.

Jednowierszowe polecenia do usuwania starych, nieużywanych jąder w systemach opartych na Debianie

Kod ten usuwa starsze wersje jądra Linuxa i ich nagłówki, ale sposób, w jaki to robi, prowadzi do pozostawienia więcej niż jednej wersji.

sudo apt-get purge $(for tag in "linux-image" "linux-headers"; do dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*" | sort -V | awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2); done)

dokładne wyjaśnienie krok po kroku:

  1. for tag in "linux-image" "linux-headers"; do ... done: Pętla wykonuje operacje dla pakietów linux-image (obrazy jądra) i linux-headers (nagłówki jądra).
  2. dpkg-query -W -f'${Package}\n' "$tag-[0-9]*.[0-9]*.[0-9]*": Wyszukuje zainstalowane pakiety pasujące do wzorca, co oznacza wszystkie wersje jądra i ich nagłówki.
  3. sort -V: Sortuje te pakiety według wersji, od najstarszych do najnowszych.
  4. awk 'index($0,c){exit} //' c=$(uname -r | cut -d- -f1,2): Zatrzymuje listę na wersji jądra, która jest częściowo zgodna z obecnie używaną wersją. uname -r | cut -d- -f1,2 daje główną część numeru wersji bieżącego jądra, na przykład dla 4.15.0-96-generic będzie to 4.15.

Teraz kluczowe jest zrozumienie, co robi awk. Jeśli bieżąca wersja jądra to 4.15.0-96, awk zatrzyma listowanie na pierwszym pakiecie, który zaczyna się od 4.15, bez względu na to, czy jest to 4.15.0-96, 4.15.1-100 czy jakakolwiek inna wersja zaczynająca się od 4.15.

W rezultacie, kod ten zostawi:

  • Wszystkie wersje jądra i ich nagłówki, które są nowsze lub częściowo zgodne z obecnie używanym jądrem. Na przykład, jeśli używasz 4.15.0-96, zostaną wszystkie wersje 4.15.x-y.
  • Usunięte zostaną wszystkie starsze wersje, na przykład 4.14.x, 4.13.x itd.

Ilość pozostawionych wersji zależy więc od tego, jak wiele różnych wydań jądra jest zainstalowanych w tej samej głównej gałęzi (tutaj 4.15.x).

Na koniec

Po usunięciu starych jąder należy zaktualizować konfigurację programu ładującego GRUB, aby odzwierciedlić zmiany. Uruchom następujące polecenie, aby zaktualizować program ładujący.

sudo update-grub