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