Upgradoval jsem jádro našich serverů Ubuntu od chvíle, kdy vydali opravu zranitelnosti Meltdown. Všiml jsem si, že téměř na všech serverech musím po restartu spustit apt autoremove
dvakrát, aby vyčistil všechna stará jádra, která jsou stále v systému.
Pokud jej spustím poprvé, odstraní nejprve dvě staré verze jádra:
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic linux-headers-4.4.0-104 linux-headers-4.4.0-104-generic linux-image-4.4.0-103-generic linux-image-4.4.0-104-generic
linux-image-extra-4.4.0-103-generic linux-image-extra-4.4.0-104-generic
0 upgraded, 0 newly installed, 8 to remove and 2 not upgraded.
After this operation, 596 MB disk space will be freed.
Ale poté, co je hotovo, spustím apt autoremove
opět odstraní ještě starší verzi:
% sudo apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-headers-4.4.0-96 linux-headers-4.4.0-96-generic linux-image-4.4.0-96-generic linux-image-extra-4.4.0-96-generic
0 upgraded, 0 newly installed, 4 to remove and 2 not upgraded.
After this operation, 298 MB disk space will be freed.
Zajímalo by mě, proč to nemůže udělat v jednom běhu?
Přijatá odpověď:
Skripty správce jádra, konkrétně /etc/kernel/postinst.d/apt-auto-removal
, vytvořte seznam jader, která se mají uchovávat, uložená jako konfigurace APT v /etc/apt/apt.conf.d/01autoremove-kernels
. Tento proces uchovává aktuálně spuštěné jádro, konfigurované jádro a dvě nejnovější nainstalovaná jádra.
Pravděpodobně naposledy byl skript spuštěn před vaším prvním čištěním, -96
skončilo chráněné, protože spadalo do jedné z těchto kategorií. Po vašem prvním vyčištění už to nedělalo a stalo se kandidátem na odstranění. Pokud chcete zjistit proč , 01autoremove-kernels
soubor obsahuje informace o ladění; Když se na to podíváte před prvním vyčištěním a znovu po něm, měli byste odhalit, proč jsou různé verze jádra chráněny.
Automatické odstranění jádra je záměrně konzervativní a chybuje na straně opatrnosti. S tím se můžete vypořádat automaticky (nakonec) pomocí unattended-upgrades
; podrobnosti naleznete na wiki Ubuntu.