chroot 技术简介

发布时间: 更新时间: 总字数:421 阅读时间:1m 作者: 分享 复制网址

chroot(change root directory) 在 Linux 系统中发挥了根目录的切换的作用,通常 Linux 系统的根目录是 /chroot 可以将特定的目录制定为 /。因此,chroot 也带来了系统的安全隔离(用户权限、文件目录)等特性。

chroot技术简介

  • chroot是一种隔离技术,开始主要是为了测试安装和构建系统(及制作镜像)。
  • 到2008年的时候,基于 cgroups 开发 LXC,之后有开发了 Docker 等。可以说chroot技术是容器技术的前身。

用法

chroot [-u	user] [-g group] [-G group,group,...] newroot [command]

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

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

例子

CHROOTDIR="/mnt/myroot"

# 创建一个用于存放系统的根目录
mkdir $CHROOTDIR

# 挂载 chroot 的目录
cd /mnt
mount --bind myroot myroot

# 挂载一些需要的目录
mkdir $CHROOTDIR/{dev,etc,proc,sys}
mount -t proc proc $CHROOTDIR/proc/
mount -t sysfs sys $CHROOTDIR/sys/
mount -o bind /dev $CHROOTDIR/dev/
mount -t devpts pts $CHROOTDIR/dev/pts/

# 配置 dns
cp -i /etc/resolv.conf $CHROOTDIR/etc/

# 配置 yum 源
cp -rap /etc/yum.conf /etc/yum.repos.d $CHROOTDIR/etc
VERSION=`rpm -qf /etc/redhat-release  --qf '%{VERSION}\n'`
sed -i -e "s/\$releasever/$VERSION/g" `find $CHROOTDIR/etc/yum* -type f`

# 安装 bash 等
$ yum install --installroot=$CHROOTDIR -y bash yum #kernel grub
$ chroot $CHROOTDIR bash
bash-4.2# df -lh
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G   12G  5.7G  67% /
devtmpfs                 894M     0  894M   0% /dev

参考

  1. 官方的man手册
  2. BasciChroot
  3. 如何使用chroot
最新评论
加载中...
Home Archives Categories Tags Statistics