Answers:
mkdir /mnt/root
mount --bind / /mnt/root
ls /mnt/root/home/foo/.ssh
只要您使用--bind
(而不是--rbind
),就可以获得该安装的克隆,而没有在其顶部安装任何东西。
我已经尝试实现类似的方法,但是ephemient的回答并未解释该方法的语义。它对我来说失败了,因此我在此之前在unix.SE上提出了几乎相同的问题。发表评论后,我自己弄清了答案。这是我的答案的编辑版本,以适合此处的情况。我删除了我的另一个问题(和答案)以支持这个问题。
这是我正在尝试做的事情:
坐骑
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
安装后,/
我有一个/home/joe
供用户使用的文件夹joe
。挂载其他位置(/data
)后,我便拥有了一整套可用的主文件夹,因此我将它们绑定安装到位(/data/home on /home
)。有一个文件夹/data/home/joe
,只要/dev/sdb1
成功安装成功,他就将获取的内容/data/home/joe
,否则将退回到/home/joe
(on /dev/sda1
!)。
如果成功了,我怎么可以访问原来的内容 /home/joe
(上/dev/sda1
!),而不是那些绑定安装到位的/data/home/joe
?
根据帕特里克(Patrick)对我的问题的评论和依法(emceptemient)的解决方案(此处为已接受的答案),我提出了以下建议。
它是显然是可能的mount --bind
(或mount -o bind
)的父文件夹(这是关键的部分)的一个别处结合贴装并由此访问原始内容。因此,对于我的示例案例,不要尝试:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(即,将已经绑定安装的位置安装到其他位置),我必须:
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
这就是帕特里克在评论中的意思
除非您要重新安装
/
(root),否则该答案应该可以正常工作。
只要您有一个指向绑定安装位置的父文件夹,它就可以工作,尽管上面显示的是一种间接方式。如果您将某些东西绑定安装在上面,/
那么您会很不幸,因为没有父文件夹/
。
mount --bind
,但是只有一些复杂的想法在我需要时一定会打破。这恰好满足了我的需要,甚至可以作为永久安装架使用。谢谢