当调用特定设备时,df会给出不同的结果

如果我在没有参数或设备作为参数的情况下调用它,我会得到与df相同的设备的不同输出。 运行Ubuntu 14.04。

没有参数:

 ➜ ~ df Filesystem 1K-blocks Used Available Use% Mounted on udev 4046644 4 4046640 1% /dev tmpfs 811488 2532 808956 1% /run /dev/sdb1 299337328 39634680 244474080 14% / /dev/sda1 2884152536 1309806024 1427816876 48% /media/videos ... 

/dev/sdb1作为参数,我得到了不同的结果,为同一个设备:

 ➜ ~ df /dev/sdb1 Filesystem 1K-blocks Used Available Use% Mounted on udev 4046644 4 4046640 1% /dev 

/dev/sda1它似乎工作:

 ➜ ~ df /dev/sda1 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 2884152536 1309806024 1427816876 48% /media/videos 

/dev/sdb1是OS的安装位置。

为什么输出与/dev/sdb1不同,但对/dev/sda1

来自ls输出

 ➜ ~ ls -l /dev/sda1 /dev/sdb1 brw-rw---- 1 root disk 8, 1 tammi 5 21:13 /dev/sda1 brw-rw---- 1 root disk 8, 17 tammi 5 21:13 /dev/sdb1 

tune2fs输出

 ➜ # tune2fs -l /dev/sda1 | grep 'Last mount' Last mounted on: /media/videos Last mount time: Tue Jan 5 21:13:15 2016 ➜ # tune2fs -l /dev/sdb1 | grep 'Last mount' Last mounted on: / Last mount time: Tue Jan 5 21:13:14 2016 ➜ ~ last reboot reboot system boot 3.13.0-62-generi Tue Jan 5 21:13 - 02:04 (1+04:51) 

更多系统信息:

 ➜ ~ uname -svpio Linux #102-Ubuntu SMP Tue Aug 11 14:29:36 UTC 2015 x86_64 x86_64 GNU/Linux ➜ ~ X=$(df | sed -rn 's,^(/[^ ]*) .*,\1,p') ; echo $X /dev/sdb1 /dev/sda1 ➜ ~ df | grep ^/ /dev/sdb1 299337328 39693968 244414792 14% / /dev/sda1 2884152536 1309897424 1427725476 48% /media/videos ➜ ~ ls -ld /dev/sdb1 ; ls -ld /dev/sda1 brw-rw---- 1 root disk 8, 17 tammi 5 21:13 /dev/sdb1 brw-rw---- 1 root disk 8, 1 tammi 5 21:13 /dev/sda1 ➜ ~ df /dev/sdb1 | tail -1; df /dev/sda1 | tail -1 udev 4046644 4 4046640 1% /dev /dev/sda1 2884152536 1309897424 1427725476 48% /media/videos ➜ ~ df | sed -rn 's,^(/[^ ]*) .*,<\1>,p' </dev/sdb1> </dev/sda1> 

使用mountpoint而不是文件系统

所以你要在这里做什么:

 Filesystem 1K-blocks Used Available Use% Mounted on udev 4046644 4 4046640 1% /dev tmpfs 811488 2532 808956 1% /run /dev/sdb1 299337328 39634680 244474080 14% / /dev/sda1 2884152536 1309806024 1427816876 48% /media/videos 

如果你想正确地查询/ dev / sda1你应该使用:

 df /media/videos 

如果你想正确地查询/ dev / sdb1,你应该使用:

 df / 

我相信发生的事情是,当你做df / dev / sdb1时,它将它解释为df / dev,这是udev的挂载。 至于df / dev / sda1工作 – 我将有文件,在“如果我知道”垃圾箱。 看起来像一个错误。

为了进一步testing的东西 – 如果你尝试下面你会发现,两者都会失败:

 df tmpfs df udev