chroot技术简介

"chroot 在 Linux 系统中发挥了根目录的切换工作,同时带来了系统的安全性等好处。"

Posted by Xion on October 5, 2016      views:

chroot技术简介


chroot是一种隔离技术,开始主要是为了测试安装和构建系统(做镜像也算). 到2008年的时候,基于cgroups开发除了LXC,以及Docker.可以说chroot技术是容器技术的前身.

chroot命令

官方的man手册 一般的用法为:

chroot -u 用户 -g 组 -G 组,组... 新的根目录 命令

通常这里的命令很可能是运行一个bash.

关于chroot,这里也有一些资料理解chroot

使用chroot

并不是任何目录都可以作为chroot的目标,chroot有一下条件

首先chroot的目标目录需要满足linxu文件系统标准 其次还需要挂载一些特殊的目录:

 cd /mnt/arch
 mount -t proc proc proc/
 mount -t sysfs sys sys/
 mount -o bind /dev dev/
 mount -t devpts pts dev/pts/

这个文档详细的介绍了如何使用chroot如何使用chroot 这个文档说明了chroot的一个基本概念BasciChroot

例子

 cd /home/user
 mkdir myroot   #创建一个用于存放系统的根目录
 pacman -S arch-install-scripts #这是arch linux的例子,这里相当于安装了一个arch linux系统
 # pacstrap must see myroot as mounted:
 mount --bind myroot myroot      #挂载chroot的目录
 pacstrap -i myroot base base-devel
 mount -t proc proc myroot/proc/   #挂载一些需要的目录
 mount -t sysfs sys myroot/sys/
 mount -o bind /dev myroot/dev/
 mount -t devpts pts myroot/dev/pts/
 cp -i /etc/resolv.conf myroot/etc/  #配置dns
 chroot myroot                        #chroot
 # inside chroot: