Linux:安装在不同安装点上的相同设备

el.*_*йне 5 linux mount

我有一个系统如下/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
Run Code Online (Sandbox Code Playgroud)

即安装在不同安装点的同一设备。更重要的是:

  1. 这些目录具有不同的内容(这排除了mount --bind大小写)
  2. 其中一些挂载点是常规文件

奇怪的是,df -h只显示这些挂载点之一:

/dev/disk/by-label/foobar    2.8G   70M  2.6G   3% /mnt/foobar
Run Code Online (Sandbox Code Playgroud)

这怎么可能?这是怎么回事?

iwa*_*rue 3

我猜测 /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
Run Code Online (Sandbox Code Playgroud)

这个问题提供了更深入的解释/示例:https://unix.stackexchange.com/questions/128471/define-what-device-a-directory-is- located-on

df -h没有显示这些,因为绑定安装是“虚拟”文件系统,并且df需要-a显示这些。