chroot 技术简介

发布时间: 更新时间: 总字数:421 阅读时间:1m 作者: 分享 复制网址
专栏文章
  1. Linux 基础知识
  2. chroot 技术简介(当前)
  3. Linux 中个目录说明
  4. 进程、线程、协程的作用和区别
  5. Linux 动态链接库和静态链接库
  6. Linux PAM 可插拔认证模块介绍
  7. Linux limits.conf 详解与配置
  8. Linux Signal 信号量介绍
  9. Linux GDB 调试
  10. Linux core dump 文件介绍
  11. Linux procfs 介绍
  12. Linux 进程 /proc/PID/status 深入分析
  13. Linux sysfs 介绍
  14. Linux nsswithch.conf 详解
  15. Linux Systemd 介绍
  16. Linux Interrupt 中断介绍
  17. Linux namespace 介绍
  18. Linux Cgroups 介绍
  19. Linux Capabilities 介绍

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
专栏文章
  1. Linux 基础知识
  2. chroot 技术简介(当前)
  3. Linux 中个目录说明
  4. 进程、线程、协程的作用和区别
  5. Linux 动态链接库和静态链接库
  6. Linux PAM 可插拔认证模块介绍
  7. Linux limits.conf 详解与配置
  8. Linux Signal 信号量介绍
  9. Linux GDB 调试
  10. Linux core dump 文件介绍
  11. Linux procfs 介绍
  12. Linux 进程 /proc/PID/status 深入分析
  13. Linux sysfs 介绍
  14. Linux nsswithch.conf 详解
  15. Linux Systemd 介绍
  16. Linux Interrupt 中断介绍
  17. Linux namespace 介绍
  18. Linux Cgroups 介绍
  19. Linux Capabilities 介绍
最新评论
加载中...
Home Archives Categories Tags Statistics