Partition-pleine

De Le Wiki de debian-fr.xyz
Aller à : navigation, rechercher

Au secours mon disque est plein à 100 %

En réalité nous parlons ici des partitions: En micro-informatique, une partition est une partie d'un disque dur destinée à accueillir un système de fichiers.


Si vous en êtes là, cette page est écrite pour vous.

Comment s'en rendre compte. utilisez la commande

df

Voici un exemple de ce qu'elle présente :

#df -h
Sys. de fichiers    Taille  Uti. Disp. Uti% Monté sur
/dev/sda1              14G  4,5G  8,9G  34% /
tmpfs                 1,4G     0  1,4G   0% /lib/init/rw
udev                  1,4G  252K  1,4G   1% /dev
tmpfs                 1,4G  508K  1,4G   1% /dev/shm
/dev/sda5              20G  8,9G  9,9G  48% /home

Si vous voyez marqué 100% dans la colonne « Uti% », vous avez une partition pleine.

df m'indique une partition pleine alors qu'il reste de la place

Si df vous indique qu'une partition est pleine alors que la place utilisée est inférieur à la taille de la partition.

Par défaut les système de fichiers sont configurés pour réserver 5% de l'espace disque pour l'administrateur. Cela peut devenir très gros sur une très grosse partition (pour une partition de 2Tio cela fait plus de 100Gio). Bien sûr on peut réduire cet espace réservé avec la commande suivante (réserver 2% de l'espace sur le périphérique /de/device normalement de la forme /dev/sda1) :

#tune2fs -m 2 /dev/device

Cache APT

APT garde des anciennes versions de paquets dans /var/cache/apt/archives, en cas de besoin.

On peut déterminer la taille de ce cache ainsi :

#du -sh /var/cache/apt/archives
1007M	/var/cache/apt/archives

Ici on voit que ce cache fait presque 1 Gio.

Pour vider ce cache il suffit de lancer la commande :

#apt-get clean

Fichiers de log

Méthode simple

La grande majorité du temps, c'est un ou plusieurs fichiers de log qui se remplissent. Aller dans le répertoire /var/log, et supprimez tous les fichiers se terminant par tgz (sauf évidement si vous suspectez une intrusion sur votre système et que vous avez besoin de tous les logs)

Méthode plus évoluée

Si vous avez supprimé les archives de log, et que votre disque est toujours trop plein, il va falloir affiner. commencez par repérer le répertoire qui est anormalement rempli. on part de la racine, et on affine par itérations.

#du -m /| sort -g

Si vous repérez que c'est /var qui est anormalement rempli, descendez d'un cran avec

#du -m /var | sort -g


Et ainsi de suite. Avant de supprimer un fichier, il est bon de regarder ce qu'il contient. Malheureusement, nous traitons là de gros fichiers, pas facile à manipuler, surtout si vous êtes en ssh avec un bas débit. L'astuce est de ne regarder que le début, ou la fin, avec

$ head fichier
$ tail fichier

Si il n'y a rien d’intéressant dedans, et que ce n'est pas un fichier d'archive (.tgz), il est recommandé de le vider sans l'effacer. Une astuce pour le vider sans avoir à l'ouvrir:

# echo >/var/log/fichier


cas particulier de /tmp

lors de certaines opérations, par exemple une compilation, il arrive parfois d'avoir ce message "no space left on device" Pour voir quelle est la taille de votre /tmp

  df -h /tmp
  Sys. fich.     Taille Util. Dispo Uti% Monté sur
  tmpfs             50M   44K   50M   1% /tmp

Il fait ici 50M. Certains utilisateurs se plaignent de la taille trop faible de /tmp sur les versions récentes de debian. Mais comme l'indique la commande df, /tmp utilise un système de fichiers de type tempfs, donc redimensionnable à chaud.

Pour le passer à 100M

  mount -o remount,size=100M /tmp
  df -h /tmp
  Sys. fich.     Taille Util. Dispo Uti% Monté sur
  tmpfs            100M   44K  100M   1% /tmp

Cas particulier : plus d'inodes disponibles

Vous rencontrez des erreurs "disque plein" (par exemple, lorsque vous tentez d'installer un paquet via apt-get ou aptitude), cependant la commande df vous indique que la partition n'est pas pleine?

Il se peut fortement que votre système de fichiers soit à cours d'inodes. Cela peut se produire si votre système est saturé de fichiers de petite taille.

La commande df -i vous confirmera si tel est le cas.

Comment libérer des inodes? Il vous faut trouver et supprimer les fichiers qui saturent le système de fichiers. La commande suivante pourra vous aider à identifier les répertoires où se trouvent ces fichiers :

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

source sur archive.org

Utiliser ncdu

Ce petit utilitaire vous donne une vision claire de qui occupe combien d'espace. A vous de faire ensuite le ménage ....


Autres astuces pour récupérer de l'espace disque

Localepurge

Il est intéressant d'installer le paquet localepurge. Ce logiciel, une fois installé, supprimera automatiquement tous les fichiers de documentation qui ne sont pas dans la langue ("locale") paramétrée sur votre système, et qui prennent inutilement de l'espace disque.

# apt-get install localepurge && localepurge

(Vous pourrez facilement récupérer plusieurs centaines de Mo sur un système type desktop)


  Warning.png Si vous utilisez debdelta pour diminuer votre charge réseau lors des mises-à-jour, celui-ci ne fonctionne pas pour les paquets installés nettoyés par localepurge.