Pour une raison quelconque, le format de sortie de df
a été modifié après une mise à jour récente du noyau dans Ubuntu 14.04.
Lorsque je lance df -hl
pour afficher tous les systèmes de fichiers montés, le résultat est le suivant:
bwvdnbro@wixie:~/Projects$ df -hl
Filesystem Size Used Avail Use% Mounted on
udev 12G 4.0K 12G 1% /dev
tmpfs 2.4G 1.3M 2.4G 1% /run
/dev/sda1 1.8T 1.3T 395G 78% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
none 5.0M 0 5.0M 0% /run/lock
none 12G 168K 12G 1% /run/shm
none 100M 44K 100M 1% /run/user
/dev/md0p1 3.6T 1.4T 2.1T 40% /media/bwvdnbro/raid
Cependant, lorsque je souhaite uniquement afficher un périphérique spécifique, par exemple /
, la sortie devient
bwvdnbro@wixie:~/Projects$ df -hl /
Filesystem Size Used Avail Use% Mounted on
/dev/disk/by-uuid/90cd5449-2cbf-4f32-89fe-d66e9fb5f8ee 1.8T 1.3T 395G 78% /
C'est ennuyeux, car la première ligne est trop longue pour tenir dans une fenêtre de terminal standard.
Existe-t-il un moyen de contrôler le format de sortie pour Filesystem
et de le faire afficher également /dev/sda1
au lieu de l’UUID complet lorsqu’on utilise df
pour un seul périphérique?
EDIT
J'ai donc fait quelques recherches supplémentaires sur différents nœuds exécutant différentes versions du noyau, et il s'avère que le problème n'est pas avec df
, mais plutôt avec /proc/self/mountinfo
, le fichier lu par df
. Pour les anciennes versions du noyau, ce fichier contient le nom du périphérique, tandis que les versions plus récentes listent à la place l'UUID.
La question est donc de savoir comment la commande complète df -hl
convertit l'UUID en nom de périphérique et existe-t-il un moyen de reproduire ce problème lors de l'exécution de df -hl /
?
Je rencontrais le problème avec la sortie de l'UUID parce que le script aws ec2 cloudwatch d'Amazon mon-put-instance-data.pl l'utilisait comme dimension de système de fichiers et que mes alarmes avaient tout à coup des données insuffisantes après la mise à niveau d'apt-get:
C'est vraiment un bogue initramfs-tools. Le redémarrage après initramfs-tools - 0.103ubuntu4.3 a résolu le problème partout pour moi, même sur coreutils_8.21-1ubuntu5.4
https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/1432871/comments/
J'ai le même problème lorsque j'utilise df
sur Ubuntu 14.04.
Attendre les prochaines mises à jour résoudra le problème, en attendant, j'ai créé ce script pour obtenir les informations correctement.
#!/bin/bash
DF="`df $1 $2 $3 $4 $5 $6 $7`"
UUID="`echo "$DF" | awk 'NR==2{print $1}'`"
if [ `echo "$UUID" | grep "/dev/disk/by-uuid/"` ]; then
DEV="`readlink -m $UUID`"
DF="`echo "$DF" | sed s,$(echo "$UUID"),$(echo "$DEV"), | \
awk '
NR==1{printf("%13s\t %10s\t %10s\t %7s %7s %7s %7s\n", ($1" "$2),$3 ,$4 ,$5 , $6, ($7" "$8), $9)}
NR==2{printf("%13s\t %10s\t %10s\t %7s %7s %7s %7s", $1 , $2 , $3 , $4 , $5 , $6 , $7 , $8)}
'`"
echo "$DF"
else
echo "$DF"
fi
J'ai signalé ceci comme un df-coreutils
bug sur le tableau de bord.