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

相关推荐
pk_xz12345618 分钟前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强20 分钟前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock2 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面4 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮6 小时前
Linux 使用中的问题
linux·运维
dsywws7 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零8 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
小林熬夜学编程9 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
程思扬9 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节