Debian-Wheezy

Debian Wheezy (testing) df 報告的捲大小

  • April 22, 2014

我對 /dev/sda* 引用有點困惑,因為我在測試盒上安裝了 Wheezy 而不是 Squeeze。

fdisk -l 返回:

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 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
Disk identifier: 0x000e9623

  Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   480278527   240138240   83  Linux
/dev/sda2       480280574   488396799     4058113    5  Extended
/dev/sda5       480280576   488396799     4058112   82  Linux swap / Solaris

這似乎是正確的。但是 df -h /dev/sda(和 /dev/sda1 和 /dev/sda2 和 /dev/sda5)返回:

Filesystem      Size  Used Avail Use% Mounted on
udev             10M     0   10M   0% /dev

/dev/disk/by-id 和 /dev/disk/by-path 下的每個條目都會發生同樣的情況。/dev/disk/by-uuid 下的兩個條目中只有一個會返回正確的捲大小:

df -h /dev/disk/by-uuid/cacdbad6-7e6b-4e80-84ba-e3c77ef48796
Filesystem                                              Size  Used Avail Use% Mounted on
/dev/disk/by-uuid/cacdbad6-7e6b-4e80-84ba-e3c77ef48796  229G   22G  196G  11% /

/etc/fstab 的內容:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=cacdbad6-7e6b-4e80-84ba-e3c77ef48796 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=45840d13-ee36-4e77-8e73-16cbdff25eb1 none            swap    sw              0       0
/dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

似乎除 uuid 之外的所有其他引用都指向交換分區。這是因為 Wheezy 正在測試中,是否應該將其報告為錯誤?

df如果您只是給它設備名稱,則不確定如何知道這一點。在 sda2 的情況下,沒有可用空間,因為它是一個擴展分區,而在 sda5 的情況下,它既不是交換空間,也應該通過free.

絕對有效的是df -h /or df -h /somemountpoint

在我的機器上短暫試用後,您可以傳遞輸出df中列出的任何設備名稱。mount同一設備/分區的其他(別名)名稱將不起作用。我會說這可能是一個缺失的功能,但不是一個真正的錯誤。

df僅提供有關已安裝分區的資訊。來自man df

如果參數是包含已安裝文件系統的磁碟設備節點的絕對文件名,則df顯示該文件系統上的可用空間,而不是包含設備節點的文件系統(始終是根文件系統)上的可用空間。

df不能用來詢問設備。

通常,圍繞已安裝分區工作的基本 un*x 工具會查看/etc/mtab已安裝分區。現在有辦法從/proc/mountsto建立永久符號連結/etc/mtab

引用自:https://serverfault.com/questions/445065