Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
linuxaddict:reparer:disqueplein [23/01/2018, 13:46] – créée Claude Clerc | linuxaddict:reparer:disqueplein [17/02/2022, 03:04] (Version actuelle) – [Supprimer les old-dkms inutiles] Claude Clerc | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag> | {{tag> | ||
+ | ====== Disque plein - Supprimer les noyaux inutiles ====== | ||
+ | Il arrive encore trop fréquemment que les mises à jour du noyau se fasse sans supprimer les noyaux trop anciens déjà installés. Cela peut occuper finalement quelques précieux Go sur votre disque dur et un message vous avertit alors que l' | ||
+ | |||
+ | ===== Diagnostic ===== | ||
+ | |||
+ | Voyons d' | ||
+ | ls /boot | ||
+ | La réponse est du type : | ||
+ | < | ||
+ | abi-4.4.0-101-generic | ||
+ | abi-4.4.0-103-generic | ||
+ | abi-4.4.0-104-generic | ||
+ | abi-4.4.0-109-generic | ||
+ | config-4.4.0-101-generic | ||
+ | config-4.4.0-103-generic | ||
+ | config-4.4.0-104-generic | ||
+ | config-4.4.0-109-generic | ||
+ | grub vmlinuz-4.4.0-101-generic | ||
+ | initrd.img-4.4.0-101-generic | ||
+ | initrd.img-4.4.0-103-generic | ||
+ | initrd.img-4.4.0-104-generic | ||
+ | </ | ||
+ | Il y a donc ici 4 noyaux installés, tous de la version 4.4.0, numérotés 101, 103, 104 et 109. Il y en a donc 2 en trop. | ||
+ | |||
+ | Vérifions d' | ||
+ | uname -r | ||
+ | |||
+ | La réponse est normalement '' | ||
+ | |||
+ | De combien d' | ||
+ | |||
+ | ===== Première tentative ===== | ||
+ | |||
+ | Tentez un : | ||
+ | apt autoremove | ||
+ | qui supprime les paquets devenus inutiles. Si vous voyez que des paquets de noyaux vont être supprimés, vous avez gagné ! Enfin... sauf si tous les noyaux inutiles ne sont pas supprimés. | ||
+ | |||
+ | Recommencez le diagnostic précédent. | ||
+ | |||
+ | ===== Seconde tentative ===== | ||
+ | |||
+ | Si le diagnostic laisse apparaître qu'il reste des noyaux inutiles, c'est que leurs paquets ont été marqués comme ayant été installés // | ||
+ | |||
+ | Vérifions d' | ||
+ | apt-mark showmanual | egrep ' | ||
+ | Si la réponse n'est pas vide, comme ci-dessous, c'est que vous avez été victime du bug ! | ||
+ | < | ||
+ | linux-headers-4.4.0-101 | ||
+ | linux-headers-4.4.0-101-generic | ||
+ | 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-headers-4.4.0-109 | ||
+ | linux-headers-4.4.0-109-generic | ||
+ | linux-image-4.4.0-101-generic | ||
+ | linux-image-4.4.0-103-generic | ||
+ | linux-image-4.4.0-104-generic | ||
+ | linux-image-4.4.0-109-generic | ||
+ | linux-image-extra-4.4.0-101-generic | ||
+ | linux-image-extra-4.4.0-103-generic | ||
+ | linux-image-extra-4.4.0-104-generic | ||
+ | linux-image-extra-4.4.0-109-generic | ||
+ | </ | ||
+ | |||
+ | Faisons en sorte que ces paquets redeviennent déclarés comme installés // | ||
+ | sudo apt-mark auto $(apt-mark showmanual | egrep ' | ||
+ | Cela se fait rapidement : | ||
+ | < | ||
+ | linux-headers-4.4.0-101 passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-101-generic passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-103 passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-103-generic passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-104 passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-104-generic passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-109 passé en « installé automatiquement ». | ||
+ | linux-headers-4.4.0-109-generic passé en « installé automatiquement ». | ||
+ | linux-image-4.4.0-101-generic passé en « installé automatiquement ». | ||
+ | linux-image-4.4.0-103-generic passé en « installé automatiquement ». | ||
+ | linux-image-4.4.0-104-generic passé en « installé automatiquement ». | ||
+ | linux-image-4.4.0-109-generic passé en « installé automatiquement ». | ||
+ | linux-image-extra-4.4.0-101-generic passé en « installé automatiquement ». | ||
+ | linux-image-extra-4.4.0-103-generic passé en « installé automatiquement ». | ||
+ | linux-image-extra-4.4.0-104-generic passé en « installé automatiquement ». | ||
+ | linux-image-extra-4.4.0-109-generic passé en « installé automatiquement ». | ||
+ | </ | ||
+ | |||
+ | Puis relançons la commande : | ||
+ | apt autoremove | ||
+ | Voici ce qui vous est proposé : | ||
+ | < | ||
+ | Lecture des listes de paquets... Fait | ||
+ | Construction de l' | ||
+ | Lecture des informations d' | ||
+ | Les paquets suivants seront ENLEVÉS : | ||
+ | linux-headers-4.4.0-101 linux-headers-4.4.0-101-generic | ||
+ | linux-headers-4.4.0-103 linux-headers-4.4.0-103-generic | ||
+ | linux-image-4.4.0-101-generic linux-image-4.4.0-103-generic | ||
+ | linux-image-extra-4.4.0-101-generic linux-image-extra-4.4.0-103-generic | ||
+ | 0 mis à jour, 0 nouvellement installés, 8 à enlever et 13 non mis à jour. | ||
+ | Après cette opération, 596 Mo d' | ||
+ | Souhaitez-vous continuer ? [O/n] | ||
+ | </ | ||
+ | Remarquez qu'ici seuls les noyaux n°101 et n°103 seront enlevés, laissant bien installés le dernier et l' | ||
+ | |||
+ | Après validation, le nettoyage s' | ||
+ | < | ||
+ | abi-4.4.0-104-generic | ||
+ | abi-4.4.0-109-generic | ||
+ | config-4.4.0-104-generic | ||
+ | config-4.4.0-109-generic | ||
+ | grub System.map-4.4.0-109-generic | ||
+ | initrd.img-4.4.0-104-generic | ||
+ | initrd.img-4.4.0-109-generic | ||
+ | </ | ||
+ | |||
+ | Vous pouvez estimer la place que vous avez récupérée avec un nouveau '' | ||
+ | |||
+ | ===== Supprimer les old-dkms inutiles ===== | ||
+ | Une fois les noyaux inutiles supprimés grâce à l'une des méthodes ci-dessus, il peut rester dans ''/ | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | Attention, il vaut mieux garder ces fichiers tant que les noyaux correspondants sont encore installés.</ | ||
+ | |||
+ | La commande suivante liste ces fichiers. | ||
+ | ls -1 / | ||
+ | |||
+ | Si elle ne retourne rien, vous n' | ||
+ | |||
+ | Dans le cas contraire, il faut ensuite déterminer ceux qui doivent être supprimés puis effectuer cette suppression. | ||
+ | Voici un script en python qui effectue ce travail pour vous : | ||
+ | <sxh python> | ||
+ | # | ||
+ | # -*- coding: | ||
+ | |||
+ | from glob import glob | ||
+ | from os import getuid, remove | ||
+ | from sys import path | ||
+ | |||
+ | # Ce script doit être exécuté avec les droits root : | ||
+ | if getuid()!=0: | ||
+ | print(" | ||
+ | exit(1) | ||
+ | |||
+ | # Liste des fichiers config des noyaux installés : | ||
+ | installes = glob('/ | ||
+ | # Liste des fichiers .old-dkms qu'il ne faut pas supprimer : | ||
+ | ecartes = [ "/ | ||
+ | # Liste de tous les fichiers .old-dkms : | ||
+ | tous = [ f for f in glob('/ | ||
+ | # Liste des fichiers .old-dkms à supprimer : | ||
+ | asupprimer = list(filter(lambda f:f not in ecartes, | ||
+ | asupprimer.sort() | ||
+ | # On supprime ! | ||
+ | for f in asupprimer: | ||
+ | remove(f) | ||
+ | </ | ||
+ | |||
+ | Nommez ce script '' | ||
+ | chmod +x clean_old_dkms.py | ||
+ | |||
+ | Exécutez-le avec les droits root : | ||
+ | sudo ./ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{counter|today| personne a visité cette page aujourd' |