1.命令作用
运行命令将根目录设置为NEWROOT(Run COMMAND with root directory set to NEWROOT.)
2.命令语法
Usage: chroot [OPTION] NEWROOT [COMMAND [ARG]...]
or: chroot OPTION
3.参数详解
OPTION:
- --userspec=USER:GROUP,指定要使用的用户和组(ID或名称)
- --groups=G_LIST,指定附加用户组,如g1,g2,..,gN
- --help,显示帮助信息并退出
- --version,输出版本信息并退出
注意: 如果没有给出命令, 则运行'${SHELL} -i' (默认为: '/bin/sh -i').
4.常用用例
4.1.简单构造chroot环境
# 设置/chroot_env目录,将其视为/root目录
[root@node1 ~]# mkdir -p /chroot_env/bin /chroot_env/lib /chroot_env/lib64
[root@node1 ~]# cp /bin/ls /chroot_env/bin/
[root@node1 ~]# cp /lib64/ld-linux-x86-64.so.2 /chroot_env/lib64/ # 没有该文件后面执行chroot /chroot_env /bin/ls会提示:chroot: failed to run command ‘/chroot_env/bin/ls’: No such file or directory
[root@node1 ~]# cp /lib64/libc.so.6 /chroot_env/lib64/ # 复制其他依赖文件到/chroot_env/lib64/; 有了ld-linux-x86-64.so.2后执行chroot /chroot_env /bin/ls会提示缺少的依赖文件
[root@node1 ~]# cp /lib64/libselinux.so.1 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libcap.so.2 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libacl.so.1 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libpcre.so.1 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libdl.so.2 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libattr.so.1 /chroot_env/lib64/
[root@node1 ~]# cp /lib64/libpthread.so.0 /chroot_env/lib64/
[root@node1 ~]# chroot /chroot_env /bin/ls
bin lib lib64
[root@node1 ~]# sudo chroot /chroot_env /bin/ls
bin lib lib64
[root@node1 ~]#
4.2.完整构造chroot环境
- Debian/Ubuntu系统需要debootstrap工具构造
- Fedora/CentOS系统需要dnf --installroot工具构造