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

相关推荐
遇见火星32 分钟前
Ubuntu Docker 容器化部署教程
linux·ubuntu·docker
ybb_ymm2 小时前
mysql8在linux下的默认规则修改
linux·运维·数据库·mysql
半梦半醒*2 小时前
zabbix安装
linux·运维·前端·网络·zabbix
武文斌775 小时前
复习总结最终版:单片机
linux·单片机·嵌入式硬件·学习
驱动探索者5 小时前
贝尔实验室发展史:20世纪科技圣殿的辉煌与沉浮
linux
何朴尧5 小时前
centos/cuos如何开启软件源
linux·运维·centos
YouEmbedded6 小时前
解码Linux文件IO之标准IO
linux·文件io·系统io
撬动未来的支点6 小时前
【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化
linux
csdn_Hzx7 小时前
Linux添加一个系统服务
linux·运维·服务器
洛克大航海7 小时前
Ubuntu安装Hbase
大数据·linux·数据库·ubuntu·hbase