约 4758 字

约 24 分钟

#Bash 的 pivot_root 命令

pivot_root [OPTION]... NEW_ROOT PUT_OLD

功能

更改根文件系统。

类型

可执行文件(/usr/sbin/pivot_root),属于 util-linux。

参数

  • OPTIONS 选项:
    • -h, --help - 显示帮助
    • -V, --version - 显示版本
  • NEW_ROOT - 新的根文件系统
  • PUT_OLD - 将旧的根文件系统挂载到此处

#示例

$ mkdir ./mnt                               # 创建挂载点
$ sudo mount /dev/sda ./mnt/                # 挂载文件系统
$ wget https://busybox.net/downloads/binaries/1.35.0-x86_64-linux-musl/busybox -O ./mnt/busybox
$ sudo mkdir ./mnt/old_root                 # 创建目录挂载旧的根文件系统
$ sudo unshare -m /bin/bash                 # 创建新的 mount namespace,在其中运行一个新的 bash
$ sudo pivot_root ./mnt/ ./mnt/old_root     # 将根文件系统切换到 ./mnt/
# cd /                                      # 切换到根目录(原先的工作目录已经失效)
# ./busybox ls                              # 通过 busybox 执行命令
busybox   old_root
# ./busybox mkdir /proc                     # 挂载基础文件系统
# ./busybox mount -t proc proc /proc
# ./busybox mkdir /sys
# ./busybox mount -t sysfs sysfs /sys

#相关命令

命令说明
chroot执行命令时指定根路径
switch_root切换根文件系统(不可恢复)

#推荐阅读

#手册

更新: 2026/3/18

作者: PlanC

创建: 2026/3/18