了解 mount -o bind

了解 mount -o bind

以下命令后有几个问题:

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 挂载的分区...我在哪里可以找到是否有使用 bind 的挂载点?我能检测到的唯一方法是 grep user /proc/mounts,但在那一行中没有关于 bind 的信息。

谢谢。

答案1

  1. 没有任何。
  2. 没有任何。
  3. 嗯,从来没想过。您可以找到重复的源设备并统计两个挂载点。如果 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
    

    但是,如果你将一个挂载点绑定挂载到另一个挂载点(例如绑定挂载//tmp/bar1),inode 编号将相同。因此无法区分绑定挂载的文件系统或简单挂载两次的设备。

相关内容