web-dev-qa-db-fra.com

apt-get: Il n'y a plus d'espace disponible sur le périphérique (12.04)

J'ai lu tous les fils de discussion que j'ai pu trouver - même ceux qui disent que la question a été répondue ailleurs, mais aucun d'entre eux n'aborde le problème spécifique que j'ai. Update Manager a exécuté et généré des erreurs liées à une dépendance non satisfaite et a suggéré d'utiliser apt-get install -f qui échoue avec le message suivant:

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create `/usr/src/linux-headers-3.5.0-36/Arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing `./usr/src/linux-headers-3.5.0-36/Arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

Je soupçonne que les 5 derniers mots Il ne reste plus d’espace sur le périphérique sont significatifs, mais df et du montrent un espace suffisant. Je me demande donc quel appareil a besoin de plus d'espace?

Ouput de df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 
40
Don A

Je viens de rencontrer ce même problème. J'ai trouvé ailleurs une mention d'inodes et couru dans mon terminal pour vérifier l'utilisation d'inodes:

  df -i 

Cela a montré l'utilisation d'inode à 99%. Ainsi, alors que mon disque disposait de beaucoup d'espace disque, je ne pouvais pas créer plus de fichiers à cause du nombre limité d'inodes. Un nettoyage de disque a été la solution à mon problème.

46
Kevin

Je pense que votre partition de démarrage est pleine d’anciennes images du noyau, ne laissant aucune place au nouveau que apt-get tente d’installer. Vous pouvez taper

dpkg -l linux-headers-\* linux-image-\* | grep ^ii

dans une fenêtre de terminal. Quand je fais cela, je reçois

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            AMD64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            AMD64        Generic Linux kernel headers

Comme j’en ai plusieurs, je pourrais supprimer certaines des plus anciennes avec

Sudo apt-get remove linux-headers-3.8.0-18

Si apt-get échoue parce qu'il manque des dépendances de paquetages (que vous ne pouvez pas installer en raison du manque d'inodes libres), vous pouvez utiliser plutôt dpkg à la place:

Sudo dpkg --remove linux-headers-3.8.0-18

Faites-le plusieurs fois avec votre plus ancien linux-headers-* et vous devriez avoir de la place.

36
Marc

J'ai utilisé Sudo apt-get autoremove et il a supprimé un tas d'anciens paquets kernel-headers. C'est bon d'y aller après ça.

15

Autant que je sache, la limite d'inodes dans les systèmes de fichiers Linux ext * est d'environ 4 milliards, mais pas moins, ce qui représente une énorme quantité de fichiers. Votre problème est donc que quelque chose génère beaucoup de fichiers. Je peux vous proposer de vérifier d'abord ceci: http://blog.scoutapp.com/articles/2014/10/08/understanding-disk-inodes Vous allez donc trouver ce qui remplit les inodes FS. Je peux aussi proposer de nettoyer le cache d'apt:

Sudo apt-get clean

et

Sudo apt-get autoclean
1
Stefan