chroot 和 pivot_root 都能改变进程的根目录,但机制和用途不同:
chroot
作用:临时将进程的 / 指向一个子目录(如 /myroot),但原文件系统仍挂载,内核和其他进程仍用原根。
缺点:
不能完全隔离(通过 /proc、设备等可能逃逸);
不能卸载原根文件系统;
不是真正的“切换根”。
pivot_root
作用:真正切换根文件系统,把当前根“换掉”,常用于启动容器或 init 系统。
特点:
原根会被移到新根下的某个目录(如 /oldroot),之后可卸载;
必须配合 mount --move 和 umount 使用;
只能在挂载了新文件系统后使用(不能直接 pivot 到普通目录)。
比喻:
chroot 像戴VR眼镜——你看到的是新世界,但身体还在原地;
pivot_root 像搬家——你真的住进了新家,旧家可以拆掉。
容器(如 systemd-nspawn)用 pivot_root 实现干净隔离;chroot 适合简单测试,不用于高安全场景。
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


