Linux chroot 命令 - 改变根目录
介绍
chroot(英文全称:change root directory)命令用于改变根目录。
Linux 系统的目录结构默认都是以 root 根目录(即 /
)开始的,使用 chroot 命令可以将指定的目录作为根目录。
语法:
chroot [OPTION] NEWROOT [COMMAND [ARG]...]
选项:
--groups=G_LIST
:指定补充组,如 g1, g2, ... , gN。--userspec=USER:GROUP
:指定使用的用户和组(通过 ID 或 name)。--skip-chdir
:不用将工作目录更改为/
。--help
:显示帮助信息并退出。--version
:显示版本信息并退出。
如果没有指定 COMMAND 命令,chroot 默认会执行 ${SHELL} -i
,进入 shell 交互模式。
示例
假设 /opt/rootfs 目录是一个可用的文件系统
$ ls /opt/rootfs/
bin boot dev etc home lib media mnt opt proc run sbin sys tmp usr var
先执行下面命令查看当前进程指向的根目录
$ ls -ld /proc/self/root
lrwxrwxrwx 1 root root 0 Jun 5 14:14 /proc/self/root -> /
查看当前根文件系统的 /etc/version 信息
$ cat /etc/version
20210330083304
查看执行 chroot 后的 /etc/version 信息
$ sudo chroot /opt/rootfs cat /etc/version
20210605043324
不带命令执行 chroot
$ sudo chroot /opt/rootfs
再次查看此时的 /etc/version 信息
$ cat /etc/version
20210605043324
执行 exit
退出并返回到原来的根文件系统。