por que df obter resultado inconsistente com lsblk?

1

A saída gerada por df é consistente com lsblk

debian8@hwy:~$ df -h   /dev/sda1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        47G   34G   14G  72% /media/xp_c
debian8@hwy:~$ df -h   /dev/sda3
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        92G   36G   52G  42% /

A saída produzida por df é inconsistente com lsblk

debian8@hwy:~$ df -h   /dev/sda4
Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev
debian8@hwy:~$ df -h   /dev/sda5
Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev
debian8@hwy:~$ df -h   /dev/sda6
Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev
debian8@hwy:~$ df -h   /dev/sda7
Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev

Como explicar a saída de lsblk e df -h ?
Em algum momento, o df não consegue obter informações corretas sobre o disco.

sudo fdisk -l 

Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x3b2662b1

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048  97851391  97849344 46.7G  7 HPFS/NTFS/exFAT
/dev/sda2        97851392 195508223  97656832 46.6G 83 Linux
/dev/sda3       195508224 390819839 195311616 93.1G 83 Linux
/dev/sda4       390821886 449411071  58589186   28G  5 Extended
/dev/sda5       390821888 400584703   9762816  4.7G 82 Linux swap / Solaris
/dev/sda6       400586752 439646207  39059456 18.6G  b W95 FAT32
/dev/sda7       439648256 449411071   9762816  4.7G  7 HPFS/NTFS/exFAT
    
por it_is_a_literature 11.01.2017 / 02:22

3 respostas

4

Na verdade, existem dois problemas. O primeiro é o óbvio que outros apontaram: o lsblk lista disco por dispositivo e o df funciona em sistemas de arquivos montados. Então lsblk /dev/sda3 é aproximadamente equivalente a df -h / no seu caso, já que / dev / sda3 está montado em /.

Só que não é. Porque lsblk lista o tamanho da partição enquanto df lista o tamanho do sistema de arquivos. A diferença (93.1GB vs 92GB para sda3 no seu exemplo) é uma combinação de espaço inutilizável (se houver) e sobrecarga do sistema de arquivos. Uma certa quantidade de espaço precisa ir para manter o controle do sistema de arquivos em si, em vez do conteúdo dos arquivos que ele armazena.

    
por 11.01.2017 / 04:28
2

As partições /dev/sda4 etc. não estão montadas. Como eles não estão montados, df informa o tamanho do sistema de arquivos no qual estão localizados os arquivos especiais /dev/sda4 etc. este é um pequeno sistema de arquivos baseado em memória montado em /dev . Use sudo file -s /dev/sda4 etc. para descobrir quais sistemas de arquivos, se houver, estão presentes nessas partições. Monte-os em algum lugar se você quiser usar df para descobrir quanto espaço é usado ou disponível.

Um exemplo:

$ df /dev/sdb1            # /dev/sdb1 is not currently mounted
Filesystem     1K-blocks  Used Available Use% Mounted on
udev              234040     0    234040   0% /dev

$ sudo mount /dev/sdb1 /mnt
$ df /dev/sdb1             # Now it is mounted and df can show used and free space
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sdb1       60787696 498464  60289232   1% /mnt
    
por 11.01.2017 / 03:51
1

Isso ocorre porque o df mostra apenas informações sobre sistemas de arquivos montados. sda1 e sda3 são montados, então eles mostram as informações corretas.

    
por 11.01.2017 / 04:10