Ș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).
Ștergere rapidă
Șterge toate kernel-urile vechi, păstrând versiunea activă și una de fallback:
sudo apt autoremove --purge sudo update-grub
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
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.
Ștergere rapidă
Șterge toate kernel-urile vechi, păstrând versiunea activă și una de fallback:
sudo apt autoremove --purge sudo update-grub
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
Pachetul linux-generic asigură că sistemul instalează automat cele mai recente kernel-uri. 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.
Ștergere rapidă
Arch nu acumulează versiuni vechi în mod normal. Dacă ai instalat mai multe variante, șterge varianta de care nu mai ai nevoie:
sudo pacman -Rs linux-lts linux-lts-headers
Pentru curățarea cache-ului de pachete (inclusiv imaginile vechi de kernel stocate local):
sudo paccache -rk1
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
Actualizare GRUB după ștergere
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/. paccache se găsește în pachetul pacman-contrib:
sudo pacman -S pacman-contrib sudo paccache -rk2
Comanda păstrează ultimele 2 versiuni din cache pentru fiecare pachet. Folosește -rk1 pentru a păstra doar ultima versiune.
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.
Ștergere rapidă
Metoda 1 - cu package-cleanup din pachetul dnf-utils (păstrează ultimele 2 versiuni):
sudo dnf install dnf-utils sudo package-cleanup --oldkernels --count=2
Metoda 2 - nativă cu dnf repoquery:
sudo dnf remove $(sudo dnf repoquery --installonly --latest-limit=-1 -q)
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 automat la fiecare upgrade. 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ă admisă 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.
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.
Ștergere rapidă
Aplică politica definită în zypp.conf și șterge automat versiunile în surplus:
sudo zypper purge-kernels
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 manuală
Dacă preferi să ștergi o versiune specifică:
sudo zypper remove kernel-default-X.Y.Z
Actualizare GRUB
Bootloader-ul este actualizat automat la purge-kernels. Dacă vrei să forțezi regenerarea manual:
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 sau folosești instrumentul dedicat eclean-kernel.
Ștergere rapidă
Instalează și folosește eclean-kernel din pachetul app-admin/eclean-kernel - șterge automat kernel-urile vechi, inclusiv sursele, imaginile din /boot și modulele:
sudo emerge app-admin/eclean-kernel sudo eclean-kernel -n 1
Flag-ul -n 1 păstrează doar cel mai nou kernel și șterge tot restul. Folosește -n 2 pentru a păstra și un fallback. Rulează cu -p (pretend) mai întâi pentru a vedea ce urmează să fie șters:
sudo eclean-kernel -n 2 -p
Ștergere manuală
Dacă preferi să nu folosești eclean-kernel, procesul manual implică mai mulți pași.
Verifică kernel-ul activ și versiunile instalate:
uname -r equery list 'sys-kernel/*' ls /boot/vmlinuz-* /boot/initramfs-*
Dezinstalează sursele kernel-ului vechi:
sudo emerge --unmerge sys-kernel/gentoo-sources:X.Y.Z
Șterge fișierele rămase din /boot:
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
Șterge sursele și modulele:
sudo rm -rf /usr/src/linux-X.Y.Z-gentoo sudo rm -rf /lib/modules/X.Y.Z-gentoo
Actualizare GRUB
sudo grub-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. Kernel-urile sunt livrate ca pachete linux-lts, linux-stable (înlocuiește linux-edge începând cu Alpine 3.23) sau linux-virt (pentru mașini virtuale).
Ștergere rapidă
Alpine nu acumulează versiuni vechi în mod normal - apk upgrade înlocuiește kernel-ul în loc să adauge unul nou. Dacă ai instalat mai multe variante, elimină varianta nedorită:
sudo apk del linux-stable
Curăță fișierele reziduale din /boot dacă au rămas după un upgrade:
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
Verificare versiuni instalate
uname -r
apk info | grep linux
Actualizare bootloader
Alpine folosește extlinux (BIOS) sau GRUB (UEFI) în funcție de modul de instalare.
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).
Ștergere rapidă
Ș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.
Verificare kernel activ și generații instalate
uname -r
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
Ștergere selectivă a generațiilor
Șterge generațiile mai vechi de 30 de zile:
sudo nix-collect-garbage --delete-older-than 30d
Șterge generații specifice după număr:
sudo nix-env --delete-generations 5 6 7 --profile /nix/var/nix/profiles/system sudo nix-collect-garbage
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ă. Rollback-ul la o versiune anterioară a întregului sistem (inclusiv kernel) se face dintr-o singură comandă sau direct din GRUB. Rulează nix-collect-garbage 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