Debian Wheezy(测试)df 报告卷大小

Debian Wheezy(测试)df 报告卷大小

由于我在测试箱上安装的是 Wheezy 而不是 Squeeze,因此我对 /dev/sda* 引用有点困惑。

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 (and /dev/sda1 and /dev/sda2 and /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 正在测试中,应该将其报告为错误吗?

答案1

如果只给它设备名称,不知道如何df知道这一点。如果是 sda2,则没有可用空间,因为它是扩展分区;如果是 sda5,则也没有可用空间,因为它是交换分区,应通过 查找free

绝对有效的是df -h /df -h /somemountpoint

在我的计算机上短暂试用后,您可以传递输出df中列出的任何设备名称mount。同一设备/分区的其他(别名)名称均不起作用。我想说这可能是一个缺失的功能,但不是真正的错误。

答案2

df仅提供有关已安装分区的信息。来自man df

如果参数是包含已安装文件系统的磁盘设备节点的绝对文件名,自由度显示该文件系统上可用的空间,而不是包含设备节点的文件系统(始终是根文件系统)上的可用空间。

df无法用来请求设备。

通常,基本的 un*x 工具会围绕已安装分区进行操作,/etc/mtab以查找已安装的分区。现在有方法可以创建从/proc/mounts到 的永久符号链接/etc/mtab

答案3

谢谢,这对我很有帮助,我在 Nagios 中遇到了同样的问题。阅读完此主题后,我在客户端的 nrpe.cfg 中进行了更改

command[check_rootpart]=/usr/local/nagios/libexec/check_disk -p /dev/sda1

command[check_rootpart]=/usr/local/nagios/libexec/check_disk -p /

Nagios 已开始正确显示可用空间。看起来它使用类似的机制来确定可用空间。

相关内容