web-dev-qa-db-fra.com

Ubuntu 14.04: df imprime un UUID complet

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 /?

3
B. Vandenbroucke

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/

1
Eric Jensen

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-coreutilsbug sur le tableau de bord.

0
mario.q59