Juwa: Dik - parada, mam to cisty jen dve jadra
Jeste dotaz - jde z terminalu i to uzamceni jadra?
Kernely jsou balíky jako každé jiné. Uzamčení balíku z Terminálu:
sudo apt-mark hold package_name
(stačilo by zamknout jenom příslušné metabalíky, ale pokud zamkneš vše, nic se nestane...)
Příklad (pouze metabalíky):
sudo apt-mark hold linux-generic-18.04-4.18.0.13 linux-headers-generic-18.04-4.18.0.13 linux-image-generic-18.04-4.18.0.13
Příklad (vše = metabalíky + balíky kernelu):
sudo apt-mark hold linux-generic-18.04-4.18.0.13 linux-headers-generic-18.04-4.18.0.13 linux-image-generic-18.04-4.18.0.13 linux-headers-4.18.0-13 linux-headers-4.18.0-13-generic linux-image-4.18.0-13-generic linux-modules-4.18.0-13-generic linux-modules-extra-4.18.0-13-generic
Jinak k čištění starých kernelů lze použít
ubuntu-tweak. Ten je ale k dispozici pouze pro U < 17.04
https://launchpad.net/~trebelnik-stefina/+archive/ubuntu/ubuntu-tweak/+packagesPro U18.04 a vyšší je však k dispozici podobný
ubuntu-cleaner.
https://launchpad.net/~gerardpuig/+archive/ubuntu/ppaAle obsahuje chybu v "čistícím skriptu" která způsobuje, že se neodstraňují balíky
linux-modules a linux-modules-extra Lze to však jednoduše napravit úpravou toho skriptu (ty balíky do něj dopsat).
PostupNejprve tedy
ubuntu-cleaner nainstalujeme:
sudo add-apt-repository ppa:gerardpuig/ppa
sudo apt-get install ubuntu-cleaner
Pak otevřeme jeho čistící skript v geditu:
sudo gedit /usr/lib/python2.7/dist-packages/ubuntucleaner/janitor/oldkernel_plugin.py
A upravíme ho dle přiložených obrázků.
Kdo by si snad na úpravu netroufal, dávám do přílohy soubor
oldkernel_plugin.py již upravený. Stažený .zip stačí rozbalit a nahradit původní soubor:
sudo \cp ~/Stažené/oldkernel_plugin.py /usr/lib/python2.7/distpackages/ubuntucleaner/janitor/oldkernel_plugin.py
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Další možností je napsat si "čistící" skript vlastní (přiložen v příloze):
#!/bin/bash
# Skript k čištění starých kernelů. Aktuální + jeden starší ponechává.
# Dále vyčistí apt cache a staré konfig. soubory.
OLDCONF=$(dpkg -l|grep "^rc"|awk '{print $2}')
CURKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
LINUXPKG="linux-(image|headers|modules|ubuntu-modules|modules-extra|restricted-modules)"
METALINUXPKG="linux-(image|headers|restricted-modules|)-(generic|i386|server|common|rt|xen)"
OLDKERNELS=$(dpkg -l|awk '{print $2}'|grep -E $LINUXPKG |grep -vE $METALINUXPKG|grep -v $CURKERNEL)
YELLOW="\033[1;33m"
RED="\033[0;31m"
ENDCOLOR="\033[0m"
echo -e $YELLOW"Seznam starých config souborů k odstranění..."$ENDCOLOR
echo $OLDCONF
echo "----------------------------------------------------------"
echo "----------------------------------------------------------"
echo -e $YELLOW"Seznam starých kernelů k odstranění..."$ENDCOLOR
echo $OLDKERNELS
echo
echo -n -e "\e[41mChcete tyto položky odstranit (y/n)? \e[0m "
read answer
if [ "$answer" != "${answer#[Yy]}" ] ;then
echo -e $YELLOW"Čištění apt cache:"$ENDCOLOR
sudo apt-get clean
echo -e $YELLOW"Odstraňování starých config souborů..."$ENDCOLOR
sudo dpkg --purge $OLDCONF
echo -e $YELLOW"Odstraňování starých kernelů..."$ENDCOLOR
sudo dpkg --purge $OLDKERNELS
echo "Všechny položky byly odstraněny"
echo "Will exit............"
sleep 3
else
echo "Nebyla odstraněna žádná položka"
echo "Will exit............"
sleep 3
fi
echo -e $YELLOW"Script ukončen!"$ENDCOLOR
sleep 5; exit
Skript nejprve zobrazí seznam položek k odstranění a zeptá se
vyčistit ano/ne.