A挂载点 /mnt/sub
被另一个安装点遮挡/mnt
。是否总是可以访问已安装的文件系统?
root 访问权限是给定的。该系统是一个相当新的Linux。
示例场景:访问覆盖根的分支
基本操作顺序是:
mount device1 /mnt/sub
mount device2 /mnt
之后/mnt/sub
是一个文件device2
(如果存在)。问题是如何访问device1
.
有些设备可以安装两次,所以mount device1 /elsewhere
可以工作。但这并不适用于所有设备,特别是 FUSE 文件系统。
这与已经覆盖了情况子目录被挂载点遮蔽,但子目录的挂载点本身是可见的,并且绑定挂载可以创建一个清晰的视图。在上面的示例中,mount --bind / /elsewhere
让我们看到/mnt/sub
上的根文件系统的目录/elsewhere/mnt/sub
,但是这个问题是关于访问 上的文件系统device1
。
答案1
# unshare --mount # this opens a sub-shell
# cd /
# umount /mnt
做你想做的事
# exit # close the sub-shell
答案2
这可能来得太晚了,但我通常这样做的方式是:
- 将原始设备再次挂载到不同的目录
- 新目录现在仅包含原始设备的文件夹,而不包含任何子安装。
- 这不依赖于安装顺序、内核命名空间支持等!
- 不需要您触摸/移动当前安装(您的服务可能会使用它)
例如,这对于您的根设备是如何工作的:
mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
cd /mnt
# this folder only contains files from the root device
在你的例子中:
# your actual (untouched) work dirs
mount device1 /mnt/sub
mount device2 /mnt
# access /mnt/sub contents in another dir by remounting it there
mount device1 /mnt/tmp
cd /mnt/tmp
# any operations here apply solely to device1
答案3
根本无法通过该路径访问位于device1
下面的文件。/mnt/sub
在其他地方重新安装设备,或确保两个设备以相反的顺序安装。