chroot 和 pivot_root 都能改变进程的根目录,但机制和用途不同:
chroot
作用:临时将进程的 / 指向一个子目录(如 /myroot),但原文件系统仍挂载,内核和其他进程仍用原根。
缺点:
不能完全隔离(通过 /proc、设备等可能逃逸);
不能卸载原根文件系统;
不是真正的“切换根”。
pivot_root
作用:真正切换根文件系统,把当前根“换掉”,常用于启动容器或 init 系统。
特点:
原根会被移到新根下的某个目录(如 /oldroot),之后可卸载;
必须配合 mount --move 和 umount 使用;
只能在挂载了新文件系统后使用(不能直接 pivot 到普通目录)。
比喻:
chroot 像戴VR眼镜——你看到的是新世界,但身体还在原地;
pivot_root 像搬家——你真的住进了新家,旧家可以拆掉。
容器(如 systemd-nspawn)用 pivot_root 实现干净隔离;chroot 适合简单测试,不用于高安全场景。
网友回复
- threejs如何做个三维搭积木的游戏?
- three如何实现标记多个起始路过地点位置后选择旅行工具(飞机汽车高铁等),最后三维模拟行驶动画导出mp4?
- ai实时驱动的3d数字人可视频聊天的开源技术有吗
- swoole+phpfpm如何实现不同域名指向不同目录的多租户模式?
- 如何用go替换nginx实现请求phpfpm解析运行php脚本?
- 有没有浏览器离线运行进行各种文档、图片、视频格式转换的开源工具?
- 如何使用go语言搭建一个web防火墙?
- linux如何检测特定网络协议比如http协议中报文是否包含特点关键词并阻止返回给客户?
- 如果在nginx外过滤包含某些关键词的网页并阻止打开?
- 程序员怎么做副业赚钱?



 
				 
			 
			 
				 
			