如何在
Linux文件系统中创建循环?我想打破Linux文件系统的有向无环图(DAG)属性.这可能吗?当我在我的Ubuntu上安装了scratchBox交叉编译器时,我曾经看到过这种情况.
我现在不知道如何重现它.
解决方法
其他一些响应者已经回答了如何使用loopback设备设置挂载,但是您特别询问了绑定挂载,这有点不同.如果要使用绑定装载,只需在mount命令中指定–bind即可.例如:
mount --bind /original/path /new/path
这将使/ original / path中可访问的文件系统位置也可通过/ new / path访问.请注意,这不会跟随挂载点!例如,假设我有以下挂载点:
/something /something/underneath/that
现在假设我为/ something做了一个绑定挂载:
mount --bind /something /new_something
我将能够通过路径/ new_something / myfile访问/ something / myfile等文件.但是我无法通过路径/ new_something / under / that / otherfile访问/ something / under / that / otherfile等文件.您必须为每个文件系统设置单独的绑定装载;或者如果你有一个相对较新的内核,你可以使用rbind挂载,它遵循挂载点:
mount --rbind /something /new_something
关于rbind挂载的一个警告:它们不处理在设置rbind之后安装文件系统的情况.也就是说,假设我有这样的坐骑:
/something
然后我按上面的方式设置了我的rbind,然后我在/下面安装/ something /:rbind不会神奇地通过rbind位置看到新的挂载.还要注意,显然由于内核中的错误,您无法卸载rbind挂载.
另外,如果您的意思是“如何使用mount(2)系统调用设置绑定挂载?”:当您为常规绑定调用mount(2)时,必须指定MS_BIND标志(在mount.h中定义)安装.对于rbind挂载,必须指定MS_BIND和undocument MS_REC标志(在linux / fs.h中定义).
希望有所帮助,
埃里克·梅尔斯基