chroot 和 pivot_root 都能改变进程的根目录,但机制和用途不同:
chroot
作用:临时将进程的 / 指向一个子目录(如 /myroot),但原文件系统仍挂载,内核和其他进程仍用原根。
缺点:
不能完全隔离(通过 /proc、设备等可能逃逸);
不能卸载原根文件系统;
不是真正的“切换根”。
pivot_root
作用:真正切换根文件系统,把当前根“换掉”,常用于启动容器或 init 系统。
特点:
原根会被移到新根下的某个目录(如 /oldroot),之后可卸载;
必须配合 mount --move 和 umount 使用;
只能在挂载了新文件系统后使用(不能直接 pivot 到普通目录)。
比喻:
chroot 像戴VR眼镜——你看到的是新世界,但身体还在原地;
pivot_root 像搬家——你真的住进了新家,旧家可以拆掉。
容器(如 systemd-nspawn)用 pivot_root 实现干净隔离;chroot 适合简单测试,不用于高安全场景。
网友回复
python能写一个检测nginx rewrite高危漏洞的工具代码?
css如何给video视频进行mask遮罩?
windows如何同时允许两个用户远程桌面连接同一个电脑?
nginx升级到1.30.1导致无法启动 [emerg] SSL_CTX_new() failed怎么办?
什么是ASLR(地址随机化)?
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?


