Filesystems

為什麼df得到的結果與lsblk不一致?

  • January 11, 2017

在此處輸入圖像描述

df 產生的輸出與 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% /

df 產生的輸出與 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

如何解釋lsblkdf -h的輸出?

有時 df 無法獲得有關磁碟的正確資訊。

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

其實有兩個問題。第一個是其他人指出的顯而易見的: lsblk 按設備列出磁碟,而 df 適用於已安裝的文件系統。所以lsblk /dev/sda3大致相當於df -h /你的情況,因為 /dev/sda3 安裝在 /.

除了它不是。因為lsblk列出了分區的大小,而df列出了文件系統的大小。區別(在您的範例中 sda3 為 93.1GB 與 92GB)是不可用空間(如果有)和文件系統成本的組合。需要一些空間來跟踪文件系統本身,而不是它儲存的文件的內容。

引用自:https://unix.stackexchange.com/questions/336462