'df' não mostra o sistema de arquivos solicitado no ubuntu 14.04

5

Esse comportamento estranho começa há poucos dias. Este é o df de todo o sistema de arquivos

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

Agora peço por sda1 e isso me dá uma resposta errada

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

em vez disso, o sda6 funciona

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

Bem, o que há de errado?

Ah, o mesmo problema que eu tenho no meu outro PC com o mesmo Ubuntu instalado.

Saída adicional como muru pediu:

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% /
    
por Michele Biemmi 01.01.2016 / 10:24

2 respostas

3

Minha explicação pessoal para esse efeito é a seguinte: df lê o arquivo /proc/self/mountinfo , mas não encontra /dev/sda1 lá.

Eu sei que lê /proc/self/mountinfo porque quando eu faço strace df /dev/sda1 eu recebo a seguinte linha na saída

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

Agora, se examinarmos esse arquivo, /dev/sda não está lá, mas ele encontra /dev/sdb lá, o que explica os relatórios corretos para essas partições.

================
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

Por que não está lá? Eu não sei. Eu só posso fornecer o que eu encontrei.

Mas por que ele reporta udev na saída? df examina os sistemas de arquivos e /dev/sda1 está sob a pasta /dev , que é onde udev virtual filesystem é montado. É o mesmo comportamento se chamarmos df FILE , como df /home ou df /media/MYWINDOWSPARTITION/RANDOMFILE.txt

Eu sugiro relatá-lo como um bug ou pelo menos perguntar aos desenvolvedores GNU sobre esse comportamento (copiado da página man)

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

Editar

Além disso, o comportamento df / é explicado novamente pelo arquivo /proc/self/mountinfo com a seguinte entrada

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

O sistema de arquivos raiz é montado como /dev/dis/by-uuid/ACTUAL-UUID-NUMBER.

Mas eu não tenho explicação para df sem argumentos relatando /dev/sda1 em vez do caminho para o disco por uuid. Provavelmente o motivo é porque /dev/dis/by-uuid/ACTUAL-UUID-NUMBER em si é um link simbólico para /dev/sda1 , então resolve completamente sem argumentos, mas com argumentos precisa procurar /proc/self/mountinfo file

    
por Sergiy Kolodyazhnyy 01.01.2016 / 16:26
0

Isso é normal (para a segunda saída) já que as partições são montadas pelo seu uuid, não usando nomes de dispositivos (esse é o estilo mais antigo) Algumas distribuições do Linux usam o estilo antigo e algumas usam as novas. Aqui está uma nota para explicar melhor o problema montar partições pelo uuid

Este mecanismo protege contra a alteração da ordem de disco dos discos de swap dentro do seu hardware. Se você quiser, pode facilmente alterar isso especificando o nome do dispositivo em / etc / fstab.

    
O comando
por hp cre 01.01.2016 / 14:12

Tags