web-dev-qa-db-fra.com

Comment supprimer les paquets inutilisés lorsque le disque est plein?

Comment désinstaller les paquets inutilisés lorsque le disque est plein? J'essaie d'installer une dépendance non satisfaite linux-headers-4.4.0-108 et de mettre à jour le noyau.

J'ai essayé d'utiliser Sudo apt-get autoremove mais cela échoue avec une erreur de disque plein.

Versions:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial

Système de fichiers:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           395M   46M  350M  12% /run
/dev/xvda1      7.8G  5.0G  2.4G  69% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
tmpfs           396M     0  396M   0% /run/user/1000

Je reçois le même message d'erreur lorsque j'essaie d'exécuter Sudo apt-get -f install

$ Sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  linux-headers-4.4.0-108
The following NEW packages will be installed:
linux-headers-4.4.0-108
0 upgraded, 1 newly installed, 0 to remove and 160 not upgraded.
7 not fully installed or removed.
Need to get 0 B/9927 kB of archives.
After this operation, 70.7 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Perl: warning: Setting locale failed.
Perl: warning: Please check that your locale settings:
  LANGUAGE = (unset),
  LC_ALL = (unset),
  LC_CTYPE = "UTF-8",
  LANG = "en_US.UTF-8"
  are supported and installed on your system.
Perl: warning: Falling back to a fallback locale ("en_US.UTF-8").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 501671 files and directories currently installed.)
Preparing to unpack .../linux-headers-4.4.0-108_4.4.0-108.131_all.deb ...
Unpacking linux-headers-4.4.0-108 (4.4.0-108.131) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-
4.4.0-108_4.4.0-108.131_all.deb (--unpack):
  error creating directory './usr/src/linux-headers-4.4.0-
108/Arch/powerpc/platforms/pasemi': No space left on device
No apport report written because the error message indicates a disk full error

dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
  /var/cache/apt/archives/linux-headers-4.4.0-108_4.4.0-108.131_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

J'ai également constaté qu'il existe de nombreux noyaux inutilisés qui peuvent être supprimés pour créer plus d'espace, mais je ne suis pas sûr de la meilleure méthode, car j'utilise habituellement Sudo apt-get autoremove

Courant:

$ uname -r
4.4.0-93-generic

Inutilisé:

$ dpkg --list | grep linux-image

ii  linux-image-4.4.0-101-generic    4.4.0-101.124 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-103-generic    4.4.0-103.126 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-104-generic    4.4.0-104.127 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-4.4.0-108-generic    4.4.0-108.131 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-31-generic     4.4.0-31.50 AMD64   Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-78-generic     4.4.0-78.99 AMD64   Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-79-generic     4.4.0-79.100 AMD64  Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-81-generic     4.4.0-81.104 AMD64  Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-83-generic     4.4.0-83.106 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-87-generic     4.4.0-87.110 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-89-generic     4.4.0-89.112 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-91-generic     4.4.0-91.114 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-92-generic     4.4.0-92.115 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-93-generic     4.4.0-93.116 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-96-generic     4.4.0-96.119 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-97-generic     4.4.0-97.120 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-98-generic     4.4.0-98.121 AMD64 Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-virtual              4.4.0.108.113 AMD64 This package will always depend on the latest minimal generic kernel image.

Je viens également d'essayer de supprimer manuellement un noyau, mais je reçois le message d'erreur suivant.

$ Sudo apt-get purge linux-image-4.4.0-78
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'linux-image-4.4.0-78-generic' for regex 'linux-image-4.4.0-78'
Note, selecting 'linux-image-4.4.0-78-lowlatency' for regex 'linux-image-4.4.0-78'
Package 'linux-image-4.4.0-78-lowlatency' is not installed, so not removed
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
  linux-headers-4.4.0-108-generic : Depends: linux-headers-4.4.0-108 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

statistiques d'inode:

$ df -iH
Filesystem     Inodes IUsed IFree IUse% Mounted on
udev             504k   360  504k    1% /dev
tmpfs            506k   495  506k    1% /run
/dev/xvda1       525k  514k   11k   98% /
tmpfs            506k     1  506k    1% /dev/shm
tmpfs            506k     4  506k    1% /run/lock
tmpfs            506k    16  506k    1% /sys/fs/cgroup
tmpfs            506k     4  506k    1% /run/user/1000
1
Charles Green

Vérifiez également les en-têtes de votre noya

Vous avez 16 images de noyau installées et l'incident est survenu lors de l'installation des en-têtes du noyau.

  • Les images du noyau ne consomment pas beaucoup d'inodes, mais les en-têtes du noyau faire.
  • Si vous avez 16 images de noyau installées, vérifiez si vous avez également 16 ensembles d’en-têtes de noyau installés.
  • Les en-têtes de noyau peuvent empêcher les images du noyau d'être supprimées automatiquement.

Voyez comment tout le problème est réuni dans une seule balle serrée?

Si vous avez effectivement installé 16 ensembles d’images et d’en-têtes de noyau, utilisez dpkg pour supprimer un paquet, en libérant généralement suffisamment d’espace libre pour pouvoir supprimer le reste.

2
user535733

Votre état inode indique que votre serveur est constitué d’un grand nombre de fichiers. Les inodes sont essentiellement les fichiers qui stockent des informations sur les fichiers. Par conséquent, vos inodes sont peut-être épuisés en raison de la création, du stockage ou d'une gestion incorrecte des fichiers.

Avez-vous des sites Web en cours d'exécution sur votre serveur? Si tel est le cas, vérifiez que le nombre de fichiers de session créés ne sont pas gérés correctement ou que certains scripts peuvent générer des fichiers à une plus grande échelle.

Vous pouvez trouver le nombre de fichiers dans chacun des répertoires à l'aide du script:

for i in /*; do echo "$i"; find "$i" |wc -l; done

Vous pouvez également taper la commande ci-dessus dans Shell.

2
Krishna Chalise

Hé - Il y a un autre Charles Green!

Ainsi, votre disque n'est pas plein de fichiers, mais votre nombre d'inodes est presque plein. Cela indiquerait qu'il y a des tas de petits fichiers sur votre disque quelque part.

Pour trouver tous ces petits fichiers, essayez ce qui suit:

cd /
Sudo du -a -d 1 --inodes . | sort -nr | head -20

La première commande passe au répertoire racine et la deuxième commande produit une liste des 20 plus grands répertoires consommant des inodes sur votre ordinateur. Dans mon ordinateur, par exemple, "/ proc" utilise 266672 inodes ...

Suivez la trace des gros consommateurs d’inodes et voyez si vous trouvez un répertoire plein de fichiers de 0 octet ou de très nombreux petits fichiers. Ce sera où votre problème est.


Il y a quelques informations sur les inodes sur https://unix.stackexchange.com/questions/117093/find-where-inodes-are-being-used et aussi sur manque d'inodes

0
Charles Green