df dá um resultado diferente ao chamar um dispositivo específico

2

Eu recebo saída diferente para o mesmo dispositivo com df se eu chamá-lo sem argumentos ou com o dispositivo como um argumento. Executando o Ubuntu 14.04.

Sem argumentos:

➜  ~ df
Filesystem      1K-blocks       Used  Available Use% Mounted on
udev              4046644          4    4046640   1% /dev
tmpfs              811488       2532     808956   1% /run
/dev/sdb1       299337328   39634680  244474080  14% /
/dev/sda1      2884152536 1309806024 1427816876  48% /media/videos
...

Com /dev/sdb1 como argumento recebo um resultado diferente para o mesmo dispositivo:

➜  ~ df /dev/sdb1
Filesystem     1K-blocks  Used Available Use% Mounted on
udev             4046644     4   4046640   1% /dev

Com /dev/sda1 parece funcionar:

➜  ~ df /dev/sda1
Filesystem      1K-blocks       Used  Available Use% Mounted on
/dev/sda1      2884152536 1309806024 1427816876  48% /media/videos

/dev/sdb1 é o local onde o sistema operacional está instalado.

Por que a saída é diferente para /dev/sdb1 , mas funciona para /dev/sda1 ?

Saída de ls

➜  ~  ls -l /dev/sda1 /dev/sdb1
brw-rw---- 1 root disk 8,  1 tammi  5 21:13 /dev/sda1
brw-rw---- 1 root disk 8, 17 tammi  5 21:13 /dev/sdb1

Saída de tune2fs

➜  #  tune2fs -l /dev/sda1 | grep 'Last mount' 
Last mounted on:          /media/videos
Last mount time:          Tue Jan  5 21:13:15 2016
➜  #  tune2fs -l /dev/sdb1 | grep 'Last mount'
Last mounted on:          /
Last mount time:          Tue Jan  5 21:13:14 2016
➜  ~  last reboot
reboot   system boot  3.13.0-62-generi Tue Jan  5 21:13 - 02:04 (1+04:51)   

Mais informações do sistema:

➜  ~  uname -svpio
Linux #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015 x86_64 x86_64 GNU/Linux

➜  ~  X=$(df | sed -rn 's,^(/[^ ]*) .*,,p') ; echo $X
/dev/sdb1
/dev/sda1

➜  ~  df | grep ^/
/dev/sdb1       299337328   39693968  244414792  14% /
/dev/sda1      2884152536 1309897424 1427725476  48% /media/videos

➜  ~  ls -ld /dev/sdb1 ; ls -ld /dev/sda1
brw-rw---- 1 root disk 8, 17 tammi  5 21:13 /dev/sdb1
brw-rw---- 1 root disk 8, 1 tammi  5 21:13 /dev/sda1

➜  ~  df /dev/sdb1 | tail -1; df /dev/sda1 | tail -1 
udev             4046644     4   4046640   1% /dev
/dev/sda1      2884152536 1309897424 1427725476  48% /media/videos

➜  ~  df | sed -rn 's,^(/[^ ]*) .*,<>,p'
</dev/sdb1>
</dev/sda1>
    
por mjuopperi 05.01.2016 / 20:00

1 resposta

0

Use o ponto de montagem em vez do sistema de arquivos para isso .

Então, passando pelo que você tem aqui:

Filesystem      1K-blocks       Used  Available Use% Mounted on
udev              4046644          4    4046640   1% /dev
tmpfs              811488       2532     808956   1% /run
/dev/sdb1       299337328   39634680  244474080  14% /
/dev/sda1      2884152536 1309806024 1427816876  48% /media/videos

Se você quiser consultar adequadamente / dev / sda1 , deverá usar:

df /media/videos

Se você quiser consultar adequadamente o / dev / sdb1 , deverá usar:

df /
O que eu acredito que está acontecendo é que, quando você faz df / dev / sdb1, ele é interpretado como df / dev, que é a montagem do udev. Quanto ao df / dev / sda1 funcionando - vou ter o arquivo que no "heck if eu conheço" bin. Parece um bug.

Para testar ainda mais as coisas - se você tentar o seguinte, você perceberá que ambos falharão:

df tmpfs
df udev
    
por 01.04.2016 / 00:08