🢂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:
for tag in "linux-image" "linux-headers"; do ... done
: Pętla wykonuje operacje dla pakietówlinux-image
(obrazy jądra) ilinux-headers
(nagłówki jądra).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.sort -V
: Sortuje te pakiety według wersji, od najstarszych do najnowszych.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 dla4.15.0-96-generic
będzie to4.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 wersje4.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