我有一个以下系统/etc/mtab
:
/dev/disk/by-label/foobar /etc/somefile ext4 rw,relatime,data=ordered 0 0
/dev/disk/by-label/foobar /var/lib/somedir ext4 rw,relatime,data=ordered 0 0
/dev/disk/by-label/foobar /mnt/foobar ext4 rw,relatime,data=ordered 0 0
/dev/disk/by-label/foobar /mnt/foobar/somedir ext4 rw,relatime,data=ordered 0 0
即同一个设备挂载在不同的挂载点。此外:
- 这些目录有不同的内容(这排除了这种
mount --bind
情况) - 其中一些挂载点是常规文件
奇怪的是,df -h
只显示其中一个挂载点:
/dev/disk/by-label/foobar 2.8G 70M 2.6G 3% /mnt/foobar
这怎么可能?发生了什么事?
答案1
我猜 /etc/mtab 显示的就是使用绑定挂载的结果。您可以绑定挂载任何目录,我猜您看到的就是该结果。
$ mkdir test/ /tmp/test
$ sudo mount --bind test/ /tmp/test
$ cat /proc/mounts
<..snip...>
/dev/root /tmp/test ext4 rw,noatime,data=ordered 0 0
这个问题提供了更深入的解释/例子:https://unix.stackexchange.com/questions/128471/determine-what-device-a-directory-is-located-on
df -h
没有显示这些,因为绑定挂载是“虚拟”文件系统,并且df
需要-a
显示这些。