You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现命名空间隔离时对pivot_root中mnt_has_parent检查的疑问

关于pivot_root中根挂载父挂载检查的疑问

在实现命名空间隔离方案时,我碰到了pivot_root代码里的这处检查(对应Linux 4.6内核代码):

if (!mnt_has_parent(root_mnt))
    goto out4; /* not attached */

我对此完全摸不着头脑。按我的理解,root_mnt是调用进程视角下的当前根挂载——比如initrd环境里就是initrd,我的场景里是主机rootfs。我查看/proc/self/mountinfo得到的内容是:

cat /proc/self/mountinfo 
27 27 0:2 / / rw - rootfs rootfs rw,size=469616k,nr_inodes=117404

正常主机系统的根挂载怎么会有父挂载?我想不出任何合理场景。虽然我可以通过以下操作绕过这个检查:

mkdir /wtf
mount --rbind / wtf
chroot /wtf

此时当前根挂载就有了父挂载,但我还是搞不懂这个检查存在的原因。

内容的提问来源于stack exchange,提问作者aep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 11:32:02