web-dev-qa-db-fra.com

La commande 'df' ne montre pas le système de fichiers demandé dans Ubuntu 14.04

Ce comportement étrange commence il y a quelques jours. C'est df de tout système de fichiers

michele@OptiPlex-360:~$ df
File system    1K-blocchi    Usati Disponib. Uso% Montato su
udev              1974808        8   1974800   1% /dev
tmpfs              397120     1340    395780   1% /run
/dev/sda1        45225008 14448892  28455736  34% /
none                    4        0         4   0% /sys/fs/cgroup
none                 5120        4      5116   1% /run/lock
none              1985596       80   1985516   1% /run/shm
none               102400       68    102332   1% /run/user
/dev/sda6       190822060 65912468 115193268  37% /media/volume1

Maintenant, je demande sda1 et cela me donne une mauvaise réponse

michele@OptiPlex-360:~$ df /dev/sda1
File system    1K-blocchi Usati Disponib. Uso% Montato su
udev              1974808     8   1974800   1% /dev

au lieu sda6 fonctionne

michele@OptiPlex-360:~$ df /dev/sda6
File system    1K-blocchi    Usati Disponib. Uso% Montato su
/dev/sda6       190822060 65912468 115193268  37% /media/volume1

Eh bien, qu'est-ce qui ne va pas?

Ah, même problème que j'ai sur mon autre PC avec Ubuntu même installé.

Sortie supplémentaire demandée par le muru:

michele@OptiPlex-360:~$ mount | grep /dev/sda1
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
michele@OptiPlex-360:~$ df /
File system                                            1K-blocchi    Usati Disponib. Uso% Montato su
/dev/disk/by-uuid/2438603c-1bfd-4e79-9f6c-ad6575988aee   45225008 14448908  28455720  34% /
4
Michele Biemmi

Mon explication personnelle à cet effet est la suivante: df lit le fichier /proc/self/mountinfo mais ne trouve pas /dev/sda1 ici.

Je sais qu'il se lit /proc/self/mountinfo parce que quand je le fais strace df /dev/sda1 je reçois la ligne suivante dans la sortie

open("/proc/self/mountinfo", O_RDONLY)  = 3

Maintenant, si nous examinons ce fichier, /dev/sda n'est pas là, mais il y trouve /dev/sdb, ce qui explique les rapports corrects pour ces partitions.

================
xieerqi:
$ grep 'sda' /proc/self/mountinfo                                              

================
xieerqi:
$ grep 'sdb' /proc/self/mountinfo                                              
43 22 8:18 / /media/WINDOWS rw,nosuid,nodev,noatime - fuseblk /dev/sdb2 rw,user_id=0,group_id=0,allow_other,blksize=4096
49 22 8:21 / /media/xieerqi/0ca7543a-5463-4a07-8bbe-233a7b0bd625 rw,nosuid,nodev,relatime - ext4 /dev/sdb5 rw,data=ordered

Pourquoi ce n'est pas là? Je ne sais pas. Je ne peux fournir que ce que j'ai trouvé.

Mais pourquoi indique-t-il udev dans la sortie? df examine les systèmes de fichiers et /dev/sda1 se trouve dans le dossier /dev, qui est l'emplacement où udev système de fichiers virtuel est monté. C'est le même comportement si nous appelons df FILE, comme df /home ou df /media/MYWINDOWSPARTITION/RANDOMFILE.txt

Je suggère de le signaler comme un bogue ou au moins de demander aux développeurs GNU à propos de ce comportement (copié à partir de la page de manuel).

REPORTING BUGS
       Report df bugs to [email protected]
       GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
       General help using GNU software: <http://www.gnu.org/gethelp/>
       Report df translation bugs to <http://translationproject.org/team/>

Éditer

De plus, le comportement df / est à nouveau expliqué par le fichier /proc/self/mountinfo ayant l'entrée suivante

22 0 8:1 / / rw,noatime,nodiratime - ext4 /dev/disk/by-uuid/86df21bf-d95f-435c-9
292-273bdbcba056 rw,errors=remount-ro,data=ordered

Le système de fichiers racine lui-même est monté en tant que /dev/dis/by-uuid/ACTUAL-UUID-NUMBER.

Mais je n’ai pas d’explication pour df sans aucun argument indiquant /dev/sda1 plutôt que le chemin d’accès au disque par uuid. La raison en est probablement parce que /dev/dis/by-uuid/ACTUAL-UUID-NUMBER lui-même est un lien symbolique vers /dev/sda1, de sorte qu'il le résout entièrement sans arguments, mais avec les arguments nécessaires pour effectuer une recherche dans le fichier /proc/self/mountinfo

3

C'est normal (pour la deuxième sortie) car les partitions sont montées par leur uuid, sans utiliser les noms de périphérique (c'est l'ancien style). Certaines distributions Linux utilisent l'ancien style et certaines utilisent les nouveaux. Voici une note pour mieux expliquer le problème monter des partitions par uuid

Ce mécanisme vous protège contre le changement d’ordre des unités de disque. Vous devez permuter les disques dans votre matériel. Si vous le souhaitez, vous pouvez facilement changer cela en spécifiant le nom du périphérique dans/etc/fstab.

0
hp cre