chroot,pivot_root和switch_root 区别

一. 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)

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值