chroot,pivot_root和switch_root 区别
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
一. chroot
- chroot 机制目的
为了进一步提高系统的安全性,linux引入了chroot机制,chroot是一个系统调用,可以更改一个进程所能看到的根目录。
类似创建一个沙盒,进程运行在沙盒之内,进程运行正常与否,并不会影响这个台器的其他进程。
- chroot(change to root)
改变根目录,也就是改变一个程序运行时参考的根目录位置。例如:
由上图可以看出,ls 命令参考的根是不同, 以此来形成简单的隔离.
二. pivot_root
- pivot_root 机制目的
改变当前工作目录的所有进程或线程的工作目录. 这个跟chroot的就有很大的区别,chroot是只改变即将运行的
某进程的根目录。pviot_root主要是把整个系统切换到一个新的root目录,然后去掉对之前rootfs的依赖,以便于可以umount 之前的文件系统(pivot_root需要root权限)
三. switch_root
- switch_root 机制目的
专为initramfs设计, 通常initramfs都是为了安装最终的根文件系统做准备工作,然后切换到新的根文件系统上去。
initramfs 是rootfs, 且不能umount, 所以不能使用pivot_root.
- switch_root做的工作:
1. 删除早的rootfs内的全部内容,目的是为了释放空间,因为用的内存空间.
2. 安装新的根文件系统.
3. 切换到新的文件系统,并执行新文件系统的init程序.
(switch_root必须由pid=1的进程调用,否则会错误,例如在init脚本: exec switch_root new_rootfs /init)
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献4条内容
所有评论(0)