理解mount -o绑定

以下命令后几个问题:

mount -o bind /new_disk/home/user/ /home/user/ mount -o bind --no-mtab /new_disk/home/user/ /home/user/ 
  1. 除了在/ etc / mtab文件中挂载之外,这两个命令之间的区别是什么?例如,当/ etc位于只读文件系统时,这是非常必要的。

  2. mount -o bind和mount –bind …有什么区别?

  3. 假设我不知道有一个分区挂载使用-o bind -no-mtab …我可以在哪里find有绑定的挂载点? 我可以检测到的唯一方法是grep user / proc / mounts,但是在那一行没有任何信息绑定。

谢谢。

  1. 没有。
  2. 没有。
  3. 嗯,从来不知道。 您可以find重复的源设备并统计两个挂载点。 如果inode不同,你有一个绑定挂载:

     dennis@lightning:/tmp/foo1$ grep uuid /proc/mounts /dev/disk/by-uuid/ae2c3836-ea2d-4d0e-8409-75d682889d1f / ext3 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0 /dev/disk/by-uuid/ae2c3836-ea2d-4d0e-8409-75d682889d1f /tmp/bar1 ext3 rw,relatime,errors=remount-ro,barrier=1,data=ordered 0 0 dennis@lightning:/tmp/foo1$ stat -c %i /tmp/bar1 / 1228938 2 

    但是,如果您将一个安装点绑定到另一个安装点(例如bindmounting / to /tmp/bar1 ),则inode号码将相同。 因此,无法区分装入绑定的文件系统或简单安装两次的设备。