Ștergerea kernel-urilor vechi pe Linux

Aceasta e o versiune anterioară a paginii.


Ștergerea kernel-urilor vechi pe Linux

Pe măsură ce actualizezi sistemul, distribuțiile Linux păstrează automat versiunile anterioare ale kernel-ului ca măsură de siguranță: dacă o versiune nouă cauzează probleme, poți reveni la una mai veche din meniul GRUB. Dezavantajul este că, în timp, partiția /boot se poate umple, iar lista din bootloader devine lungă și greu de navigat. Tutorialul de față acoperă distribuțiile de bază - cele pe care sunt construite majoritatea celorlalte: Debian, Ubuntu, Arch, Fedora, openSUSE, Gentoo, Alpine și NixOS.

Înainte de a șterge orice kernel, asigură-te că ai pornit sistemul cu kernel-ul pe care vrei să-l păstrezi. Nu șterge niciodată kernel-ul activ. Verifică versiunea curentă cu:

uname -r

Debian

Debian folosește apt ca manager de pachete. Kernel-urile sunt livrate ca pachete cu numele linux-image-X.Y.Z-amd64 (sau arhitectura corespunzătoare).

Verificare kernel activ și versiuni instalate

uname -r
dpkg --list | grep linux-image

Pachetele cu starea ii sunt instalate. Versiunea afișată de uname -r este cea activă - pe aceasta nu o șterge.

Ștergere manuală

Înlocuiește X.Y.Z-amd64 cu versiunea exactă pe care vrei să o elimini:

sudo apt remove linux-image-X.Y.Z-amd64 linux-headers-X.Y.Z-amd64
sudo apt autoremove --purge
sudo update-grub

Ștergere automată cu ''autoremove''

apt poate curăța singur versiunile vechi, păstrând kernel-ul activ și penultima versiune ca fallback:

sudo apt autoremove --purge

Pe Debian Stable, kernel-urile noi apar rar (o dată la câțiva ani, odată cu o versiune majoră). Pe Testing și Unstable (Sid), actualizările sunt mai frecvente și autoremove devine mai util.

Ubuntu

Ubuntu folosește apt ca manager de pachete, iar kernel-urile sunt livrate ca pachete cu nume de forma linux-image-X.Y.Z-generic.

Verificare kernel activ și versiuni instalate

uname -r
dpkg --list | grep linux-image

Caută pachetele cu starea ii (instalat). Versiunea afișată de uname -r este cea activă - pe aceasta nu o șterge.

Ștergere manuală

Înlocuiește X.Y.Z-generic cu versiunea exactă pe care vrei să o elimini:

sudo apt remove linux-image-X.Y.Z-generic linux-headers-X.Y.Z-generic linux-modules-X.Y.Z-generic
sudo apt autoremove --purge
sudo update-grub

Ștergere automată cu ''autoremove''

Comanda următoare șterge toate kernel-urile vechi, păstrând versiunea activă și penultima ca fallback:

sudo apt autoremove --purge

Pachetul linux-generic asigură că sistemul instalează automat cele mai recente kernel-uri din seria curentă. Dacă îl ai instalat, autoremove este suficient pentru întreținere curentă. Distribuțiile derivate din Ubuntu (Linux Mint, Zorin OS, Pop!_OS, elementaryOS etc.) urmează același procedeu.

Arch Linux

Pe Arch Linux, kernel-urile sunt pachete obișnuite pacman. Spre deosebire de alte distribuții, Arch nu acumulează automat versiuni vechi - la fiecare pacman -Syu, kernel-ul este înlocuit, nu adăugat. Versiunile vechi apar doar dacă ai instalat explicit mai multe variante de kernel simultan.

Kernel-uri disponibile

Arch oferă mai multe variante oficiale, instalabile simultan:

Pachet Descriere
linux Kernel stabil, actualizat frecvent
linux-lts Kernel LTS, mai conservator
linux-zen Optimizat pentru desktop și gaming
linux-hardened Cu patch-uri de securitate suplimentare

Verificare versiuni instalate

uname -r
pacman -Q | grep linux

Ștergerea unui kernel secundar

Dacă ai instalat mai multe variante și vrei să elimini una:

sudo pacman -Rs linux-lts linux-lts-headers

Flag-ul -Rs șterge pachetul și dependențele orfane. Nu uita să incluzi și pachetul headers asociat, dacă l-ai instalat.

Actualizare GRUB

sudo grub-mkconfig -o /boot/grub/grub.cfg

Dacă folosești systemd-boot:

sudo bootctl update

Curățarea cache-ului pacman

pacman stochează versiunile vechi ale pachetelor în /var/cache/pacman/pkg/. Le poți curăța cu paccache din pachetul pacman-contrib:

sudo pacman -S pacman-contrib
sudo paccache -rk2

Comanda păstrează ultimele 2 versiuni din cache pentru fiecare pachet și le șterge pe restul.

Dacă folosești un singur kernel (linux), nu ai nimic de șters - există o singură versiune activă în orice moment. Distribuțiile derivate din Arch (Manjaro, EndeavourOS, Garuda etc.) urmează același procedeu, cu mici diferențe de bootloader.

Fedora

Fedora folosește dnf ca manager de pachete. Kernel-urile sunt pachete cu numele kernel, kernel-core și kernel-modules. Distribuțiile derivate (RHEL, AlmaLinux, Rocky Linux, CentOS Stream) urmează același procedeu.

Verificare kernel activ și versiuni instalate

uname -r
dnf list installed kernel

Configurarea numărului de kernel-uri păstrate

dnf are o opțiune nativă în /etc/dnf/dnf.conf care controlează câte versiuni sunt reținute. Valoarea implicită este 3:

installonly_limit=2

Cu valoarea 2, la fiecare actualizare dnf va păstra automat doar kernel-ul curent și unul de fallback. Valoarea minimă recomandată este 2.

Ștergere manuală

sudo dnf remove kernel-X.Y.Z kernel-core-X.Y.Z kernel-modules-X.Y.Z

Înlocuiește X.Y.Z cu versiunea exactă afișată de dnf list installed kernel.

Ștergere automată a versiunilor în surplus

Listează kernel-urile care depășesc limita setată:

sudo dnf repoquery --installonly --latest-limit=-1 -q

Pentru a le șterge efectiv:

sudo dnf remove $(sudo dnf repoquery --installonly --latest-limit=-1 -q)

Actualizare GRUB

Pe sisteme cu BIOS:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Pe sisteme UEFI:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Pe Fedora, kernel-ul nou este marcat automat ca implicit după instalare. Pe RHEL/AlmaLinux/Rocky Linux, înlocuiește calea UEFI cu /boot/efi/EFI/redhat/grub.cfg sau /boot/efi/EFI/rocky/grub.cfg, după caz.

openSUSE

openSUSE (Leap și Tumbleweed) folosește zypper și rpm. Spre deosebire de alte distribuții, openSUSE are un mecanism dedicat de gestionare a versiunilor multiple de kernel, configurat direct în /etc/zypp/zypp.conf.

Verificare kernel activ și versiuni instalate

uname -r
rpm -q kernel-default

Configurarea politicii de retenție

În /etc/zypp/zypp.conf, variabila multiversion.kernels controlează ce versiuni sunt păstrate:

multiversion.kernels = latest,running,latest-1
Valoare Semnificație
latest Cea mai recentă versiune instalată
running Versiunea activă curentă
latest-1 Penultima versiune (fallback)
latest-2 Antepenultima versiune

Configurația de mai sus păstrează 3 versiuni. Pentru a păstra doar 2:

multiversion.kernels = latest,running

Ștergere automată cu ''purge-kernels''

openSUSE include un instrument dedicat care aplică politica din zypp.conf și șterge versiunile în surplus:

sudo zypper purge-kernels

Ștergere manuală

sudo zypper remove kernel-default-X.Y.Z

Versiunea exactă o obții din output-ul comenzii rpm -q kernel-default.

Actualizare GRUB

Pe openSUSE, bootloader-ul este actualizat automat la ștergerea unui kernel prin purge-kernels. Dacă vrei să forțezi regenerarea:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Pe openSUSE Tumbleweed (rolling release), kernel-urile se actualizează frecvent. Configurarea multiversion.kernels este esențială pentru a preveni acumularea versiunilor. Pe Leap actualizările sunt mai rare, dar mecanismul este același.

Gentoo

Pe Gentoo, kernel-ul este compilat local din surse. Nu există un mecanism automat de ștergere - kernel-urile vechi rămân pe disc până când le elimini manual. Sursa kernel-ului se află în /usr/src/, iar imaginile compilate în /boot/.

Verificare kernel activ și versiuni instalate

uname -r

Listează sursele de kernel instalate:

ls /usr/src/

Listează imaginile din /boot:

ls /boot/vmlinuz-* /boot/initramfs-*

Verifică ce versiuni sunt instalate ca pachete:

emerge --list-sets | grep kernel
equery list 'sys-kernel/*'

Ștergerea surselor vechi cu ''emerge''

Dezinstalează sursele kernel-ului vechi (înlocuiește cu versiunea exactă):

sudo emerge --unmerge sys-kernel/gentoo-sources:X.Y.Z

sau, pentru varianta vanilla-sources:

sudo emerge --unmerge sys-kernel/vanilla-sources:X.Y.Z

Curățarea fișierelor din ''/boot''

Ștergerea pachetului nu elimină automat imaginile din /boot. Șterge-le manual:

sudo rm /boot/vmlinuz-X.Y.Z-gentoo
sudo rm /boot/initramfs-X.Y.Z-gentoo.img
sudo rm /boot/System.map-X.Y.Z-gentoo
sudo rm /boot/config-X.Y.Z-gentoo

Curățarea surselor din ''/usr/src''

sudo rm -rf /usr/src/linux-X.Y.Z-gentoo

Curățarea modulelor

sudo rm -rf /lib/modules/X.Y.Z-gentoo

Actualizare GRUB

sudo grub-mkconfig -o /boot/grub/grub.cfg

Dacă folosești grub2:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

Pe Gentoo, symlink-ul /usr/src/linux trebuie să pointeze întotdeauna către sursele kernel-ului activ. Verifică înainte de ștergere:

ls -la /usr/src/linux

Dacă pointează către versiunea pe care vrei să o ștergi, actualizează symlink-ul mai întâi:

sudo eselect kernel list
sudo eselect kernel set <numărul versiunii active>

Alpine Linux

Alpine Linux folosește apk ca manager de pachete și mkinitfs pentru generarea initramfs. Kernel-urile sunt livrate ca pachete linux-lts, linux-virt (pentru mașini virtuale) sau linux-edge. Alpine este folosit frecvent în containere Docker și pe sisteme embedded.

Verificare kernel activ și versiuni instalate

uname -r
apk info | grep linux

Gestionarea versiunilor

Pe Alpine, în mod normal rulezi o singură variantă de kernel. Versiunile vechi nu se acumulează automat - la apk upgrade, kernel-ul este înlocuit în loc să fie adăugat. Imaginile vechi din /boot pot rămâne însă pe disc după un upgrade.

Curățarea imaginilor vechi din ''/boot''

ls /boot/vmlinuz-* /boot/initramfs-*

Compară cu versiunea activă și șterge ce nu mai corespunde:

sudo rm /boot/vmlinuz-X.Y.Z-alpine
sudo rm /boot/initramfs-X.Y.Z-alpine
sudo rm /boot/System.map-X.Y.Z-alpine

Ștergerea unui kernel secundar

Dacă ai instalat mai multe variante (ex. linux-lts și linux-edge):

sudo apk del linux-edge

Actualizare bootloader

Alpine folosește de obicei extlinux (syslinux) sau GRUB. Pentru extlinux:

sudo update-extlinux

Pentru GRUB:

sudo grub-mkconfig -o /boot/grub/grub.cfg

Pe Alpine rulat în containere (Docker, LXC), nu există bootloader și nu există kernel propriu - containerul folosește kernel-ul gazdei. Gestionarea kernel-ului se aplică doar instalărilor bare-metal sau VM-urilor cu Alpine ca sistem de operare complet.

NixOS

NixOS are o abordare fundamental diferită față de toate celelalte distribuții. Kernel-ul face parte din configurația declarativă a sistemului, definită în /etc/nixos/configuration.nix. Fiecare actualizare creează o nouă generație - un snapshot complet al sistemului - iar generațiile vechi, inclusiv kernel-urile lor, sunt păstrate automat până la o colectare de gunoi (garbage collection).

Verificare kernel activ și generații instalate

uname -r

Listează toate generațiile disponibile:

sudo nix-env --list-generations --profile /nix/var/nix/profiles/system

Configurarea kernel-ului în ''configuration.nix''

Kernel-ul se specifică în /etc/nixos/configuration.nix. Implicit este folosit linuxPackages, dar poți alege explicit:

boot.kernelPackages = pkgs.linuxPackages_latest;  # cel mai recent kernel
# sau
boot.kernelPackages = pkgs.linuxPackages_lts;     # kernel LTS

Aplică modificarea cu:

sudo nixos-rebuild switch

Ștergerea generațiilor vechi

Șterge toate generațiile mai vechi de 30 de zile:

sudo nix-collect-garbage --delete-older-than 30d

Șterge toate generațiile vechi (păstrează doar cea curentă):

sudo nix-collect-garbage -d

nix-collect-garbage -d șterge toate generațiile vechi fără posibilitate de recuperare. Dacă ai o actualizare recentă care nu funcționează corect, nu rula această comandă - mai întâi revino la o generație stabilă din meniul GRUB, apoi rulează garbage collection.

Ștergerea generațiilor specifice

sudo nix-env --delete-generations 5 6 7 --profile /nix/var/nix/profiles/system
sudo nix-collect-garbage

Actualizare GRUB

Pe NixOS, GRUB este regenerat automat la nixos-rebuild switch. Dacă vrei să forțezi:

sudo nixos-rebuild boot

Verificarea spațiului în ''/nix/store''

sudo nix store gc
df -h /nix

Pe NixOS, menținerea mai multor generații este o funcție de siguranță, nu o problemă. Spre deosebire de alte distribuții, rollback-ul la o versiune anterioară a întregului sistem (inclusiv kernel) se face dintr-o singură comandă sau direct din GRUB. Colectează gunoiul periodic, nu înainte de fiecare update.

Verificarea spațiului recuperat

După ștergere, verifică spațiul liber pe partiția /boot (și pe /nix în cazul NixOS):

df -h /boot

Referințe