Je gère quelques serveurs pour les services principaux (NTP, DNS, etc.) et il m'est simplement venu à l'esprit qu'un des serveurs semblait conserver les 3 derniers noyaux, au lieu de 2 sur les autres:
nul@quark:~$ Sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@quark:~$ dpkg -l |grep linux-image
ii linux-image-3.13.0-51-generic 3.13.0-51.84 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-51-generic 3.13.0-51.84 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-image-generic 3.13.0.52.59 AMD64 Generic Linux kernel image
ii linux-image-generic-lts-utopic 3.16.0.37.29 AMD64 Generic Linux kernel image
...
nul@dwarf:~$ Sudo apt-get autoremove --purge
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
nul@dwarf:~$ dpkg -l |grep linux-image
ii linux-image-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii linux-image-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel image for version 3.16.0 on 64 bit x86 SMP
ii linux-image-extra-3.13.0-52-generic 3.13.0-52.85 AMD64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii linux-image-extra-3.16.0-37-generic 3.16.0-37.49~14.04.1 AMD64 Linux kernel extra modules for version 3.16.0 on 64 bit x86 SMP
ii linux-image-generic 3.13.0.52.59 AMD64 Generic Linux kernel image
ii linux-image-generic-lts-utopic 3.16.0.37.29 AMD64 Generic Linux kernel image
Tous les serveurs sont maintenus à l'identique, je ne sais pas ce que j'aurais pu faire, ça doit être un paramètre quelque part mais je ne le trouve pas!
S'il vous plaît nourrir ma curiosité! Je vous remercie
Il existe un fichier généré automatiquement qui indique à apt-get
les noyaux à supprimer automatiquement et ceux à conserver.
Le fichier qui indique à apt-get
leur noyau est /etc/apt/apt.conf.d/01autoremove-kernels
qui est généré à partir de /etc/kernel/postinst.d/apt-auto-removal
.
Habituellement, lorsque vous recevez des mises à jour du noyau, lorsque la version du noyau change, par exemple de 3.13
à 3.16
, /etc/apt/apt.conf.d/01autoremove-kernels
est alors mis à jour pour conserver les noyaux 3.16*
et ensuite défini pour supprimer tous les noyaux 3.13
sauf indication contraire du script de génération. ne pas être enlevé.
A partir du script apt-auto-removal
:
# Auteur: Steve Langasek # # Marquer comme non autorisables les packages de noyau qui sont: # - la version actuellement démarrée # - le noyau version que nous avons appelée pour # - la dernière version du noyau (déterminée à l'aide de règles copiées à partir du paquet grub # permettant de choisir le noyau à démarrer) # - le second version la plus récente du noyau, si la version du noyau démarrée est # déjà la dernière version et que ce script est appelé pour cette même version, # afin de garantir qu'une solution de secours reste disponible dans l'éventualité où la nouvelle # le noyau de cette ABI ne parvient pas à démarrer # Dans le cas le plus courant, cela aboutit à exactement deux noyaux enregistrés, mais il peut en résulter # que trois noyaux soient enregistrés. Il est préférable de privilégier # Enregistrer trop de noyaux que trop peu. # # Nous générons cette liste et l'enregistrons dans/etc/apt/apt. conf.d au lieu de marquer # packages dans la base de données car il s’exécute à partir d’un script postinst, et apt # remplacera la base de données lorsqu’il sera fermé.
Toutefois, cela ne les marque parfois pas pour le retrait automatique, car une partie du codage a été modifiée au fil des versions pour empêcher cela.
Si vous souhaitez marquer les noyaux précédents pour autoremove
, à l'exception des noyaux requis basés sur les scripts, exécutez la commande suivante à partir d'une fenêtre de terminal:
Sudo apt-mark auto ^linux-image-
Ensuite, lorsque vous exécutez la commande apt-get autoremove
, seuls ceux qui sont anciens et dont vous n'avez plus besoin peuvent être supprimés. J'ai mis des exemples ci-dessous:
Ce premier affiche tous les noyaux du système, moins le noyau en cours d'exécution.
root @ terrance-Linux:/home/share # dpkg -l 'linux- *' | sed '/ ^ ii /! d; /' "(uname -r | sed" s /\(.*\)-\([ 0-9]\+ \)/\ 1/")" '/ d; s/^ [^] * [^] *\([^] * \). */\ 1 /;/[0-9] /! d ' linux-headers-3.16.0 -34 Linux-headers-3.16.0-34-generic Linux-headers-3.16.0-36 Linux-headers-3.16.0-36-generic linux-headers-3.16.0-37 linux-headers-3.16.0-37-generic linux-headers-4.0.0-040000 linux-headers -4.0.0-040000-generic Linux-image-3.16.0-34-generic Linux-image-3.16.0-36-generic Linux-image-3.16 .0-37-generic Linux-image-4.0.0-040000-generic Linux-image-extra-3.16.0-34-generic Linux-image-extra -3.16.0-36-generic Linux-image-extra-3.16.0-37-generic
Celui-ci affiche le noyau en cours d'exécution.
terrance @ terrance-Linux: ~ $ uname -r 4.0.1-040001-generic
terrance @ terrance-Linux: ~ $ Sudo apt-get autoremove [Sudo] mot de passe pour terrance: Lire les listes de paquets ... Terminé Construire un arbre de dépendance Lecture des informations d'état ... Terminé 0 mis à niveau, 0 nouvellement installé, 0 à supprimer et 0 non mis à niveau.
terrance @ terrance-Linux: ~ $ Sudo apt-mark auto ^ linux-image - linux-image-extra-3.16.0-33-generic ne peut pas être marqué car il n'est pas installé. linux-image-extra-3.13.0-27-generic ne peut pas être marqué car il n'est pas installé. linux-image-3.13.0-44-lowlatency ne peut pas être marqué car il n'est pas installé. linux-image-3.13.0-27-generic ne peut pas être marqué car il n'est pas installé. linux-image-3.16.0-31-lowlatency ne peut pas être marqué car il ne l'est pas installed. linux-image-3.16.0-36-generic est automatiquement installé. linux-image-lowlatency-lts-utopic ne peut pas être marqué car il n'est pas installé. linux-image-extra-3.13.0-36-generic ne peut pas être marqué car il n'est pas installé. linux-image-3.13.0-36-generic ne peut pas être marqué car il n'est pas installé . linux-image-4.0.0-040000-generic est automatiquement installé. linux-image-extra-3.13.0-45-generic ne peut pas être marqué car il n'est pas installé. linux-image-3.16.0-25-generic ne peut pas être marqué comme il n'est pas installé.
NOTE: Le précédent était trop long à énumérer, donc j'ai un peu tronqué.
terrance @ terrance-Linux: ~ $ Sud apt-get autoremove Lire les listes de paquets ... Terminé Construire un arbre de dépendance Lire des informations d'état ... Terminé Les paquets suivants seront supprimés: Linux-image-3.16.0-34-generic linux-image-3.16.0-36-generic Linux-image-4.0.0-040000-generic linux-image-extra-3.16.0-34-generic linux-image-extra-3.16.0-36-generic 0 mis à niveau, 0 récemment installé, 5 à supprimer et 0 non mis à niveau . Après cette opération, 613 Mo d'espace disque seront libérés. Voulez-vous continuer? [Y/n]
Ainsi, après avoir exécuté ces commandes, vous pouvez voir que je peux maintenant supprimer automatiquement tous les anciens, à l'exception du noyau actuel (4.0.1-040001-generic) et de la suivante (3.16.0-37-generic).
Espérons que cela aide.