web-dev-qa-db-ja.com

なぜdfはlsblkと矛盾する結果を得るのですか?

enter image description here

Lsblkと一致するdfによって生成される出力

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

Lsblkと矛盾するdfによって生成された出力

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

lsblkおよびdf -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
2

実際には2つの問題があります。 1つ目は、他の人が指摘した明白なものです。lsblkはデバイスごとにディスクをリストし、dfはマウントされたファイルシステムで機能します。/dev/sda3が/にマウントされているので、lsblk /dev/sda3はあなたのケースではdf -h /とほぼ同等です。

そうでないことを除いて。 lsblkはパーティションのサイズをリストし、dfはファイルシステムのサイズをリストするためです。違い(この例ではsda3の93.1GBと92GB)は、使用できないスペース(存在する場合)とファイルシステムのオーバーヘッドの組み合わせです。保存するファイルの内容ではなく、ファイルシステム自体を追跡するために、ある程度のスペースを確保する必要があります。

5
tylerl

パーティション/dev/sda4などはマウントされていません。それらはマウントされていないため、dfは特別なファイル/dev/sda4などが配置されているファイルシステムのサイズを報告します。これは/devにマウントされた小さなメモリベースのファイルシステムです。 Sudo file -s /dev/sda4などを使用して、それらのパーティションに存在するファイルシステムがある場合はそれを確認します。 dfを使用して、使用または使用可能なスペースを確認する場合は、どこかにマウントしてください。

例:

$ 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
2
AlexP

これは、dfがマウントされたファイルシステムに関する情報のみを表示するためです。 sda1とsda3がマウントされているため、正しい情報が表示されます。

1
wokie