chroot: failed to run command ‘/bin/bash’: No such file or directory

1. 问题描述及原因分析

在busybox的环境下,执行

复制代码
cd rootfs
chroot .

报错如下:

复制代码
chroot: failed to run command '/bin/bash': No such file or directory

根据报错应该rootfs文件系统中缺少/bin/bash,进入查看确实默认是sh,换成

复制代码
chroot . /bin/sh

依然报错

复制代码
chroot: failed to run command '/bin/sh': No such file or directory

通过查阅资料发现,/bin/sh链接/bin/busybox,busybox为动态执行文件,直接进入缺少动态链接库,需要拷贝相应的动态到rootfs文件系统,如下:

复制代码
cd rootfs
cp /lib/ld-linux-aarch64.so.1 lib/
mkdir -p lib64
cp /lib64/libc.so.6 lib64/
cp /lib64/libresolv.so.2 lib64/
cp /lib64/libm.so.6 lib64/

然后再执行chroot . /bin/sh就正常了。


2. 解决方案:

拷贝相应的动态链接库到rootfs中,如下:

复制代码
cd rootfs
cp /lib/ld-linux-aarch64.so.1 lib/
mkdir -p lib64
cp /lib64/libc.so.6 lib64/
cp /lib64/libresolv.so.2 lib64/
cp /lib64/libm.so.6 lib64/

然后再chroot采用sh解释器,如下:

复制代码
chroot . /bin/sh
export PATH=$PATH:/bin:/sbin
ls

3.参考文献

https://unix.stackexchange.com/questions/58074/how-to-chroot-into-busybox-environment

相关推荐
Lueeee.11 分钟前
正点原子 ATK-DLRK3568 开发板:按键中断 + 工作队列传参实验(完整版流程 + 功能解释)
linux
小码吃趴菜16 分钟前
进程间通信 管道-信号量
linux
AndyHeee1 小时前
【瑞芯微rk3576刷ubuntu根文件系统容量不足问题解决】
linux·数据库·ubuntu
李昊哲小课1 小时前
Ubuntu 24.04 在线安装 Redis 8.x 完整教程
linux·redis·ubuntu
sao.hk1 小时前
ubuntu2404,vbox,全屏显示
linux·运维·服务器
危笑ioi1 小时前
linux配置nfs在ubuntu22.04
linux·运维·服务器
社会零时工1 小时前
【ROS2】海康相机ROS2设备服务节点开发
linux·c++·相机·ros2
东城绝神1 小时前
《Linux运维总结:Ubuntu 22.04配置chrony时间同步服务》
linux·运维·ubuntu·chrony
刘程佳1 小时前
Ubuntu 系统没有识别 Pixel 6 的 USB 设备权限
linux·运维·ubuntu
wa的一声哭了1 小时前
矩阵分析 单元函数矩阵微积分和多元向量值的导数
linux·c语言·c++·线性代数·算法·矩阵·云计算