少于 1 分钟阅读 次阅读

一、什么是 chroot?

chroot(Change Root) 是 Linux / Unix 的一个机制,用来:

改变某个进程及其子进程看到的“根目录 /

换句话说:

正常系统 chroot 后
/ 是整个系统 / 变成你指定的某个目录
能访问所有文件 只能访问该目录里的文件

二、chroot 的本质

真实系统
/
├── bin
├── etc
├── home
└── myrootfs
    ├── bin
    ├── etc
    └── lib

执行:

chroot myrootfs /bin/bash

之后:

新环境 /
├── bin
├── etc
└── lib

对 bash 来说,myrootfs 就是真正的 /


三、chroot 能做什么?

✅ 常见用途

1️⃣ 构建 / 调试 Linux rootfs

  • 嵌入式 Linux
  • ARM / RISC-V 板子
  • OpenWrt / Buildroot

2️⃣ 修复系统

  • 系统无法启动
  • 进入损坏系统的 rootfs 修 grub、密码、配置

3️⃣ 软件编译 & 测试

  • 在老 rootfs 里编译兼容程序
  • 测试不同 libc / 不同发行版行为

四、chroot 的基本用法

1️⃣ 基本命令格式

chroot <新根目录>

chroot <新根目录> <要执行的程序>

示例:

sudo chroot /mnt/ubuntu-rootfs /bin/bash

留下评论