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

相关推荐
wusam1 分钟前
计算机网络传输层应用层综合实验5:DHCP服务
linux·服务器·计算机网络·应用层服务
hnlq2 分钟前
高性能异步io机制io_uring(二) ——io_uring的简单实现
linux·服务器·网络
不会书10 分钟前
Linux字符设备驱动的演进:从传统框架到现代实践
linux·运维·服务器·c语言·驱动开发
潇I洒14 分钟前
Ubuntu Linux 24.04 安装JAVA环境openjdk-21.0.2
java·linux·ubuntu
被闲置的鱼16 分钟前
麒麟OS各种环境安装脚本,达梦数据库DM8、JDK安装、Nginx安装、vsftpd安装、硬盘挂载一件安装脚本
java·linux·数据库·nginx·kylin
白狐_79819 分钟前
Ubuntu Linux 新手生存指南
linux·ubuntu
代码游侠19 分钟前
应用——Linux 标准IO编程
linux·前端·数据库·学习·算法
近津薪荼31 分钟前
Linux 操作系统基础指令详解(一)
linux·服务器·学习
咖丨喱33 分钟前
【MMC CMD 和 RSP 定义说明】
linux
Joren的学习记录41 分钟前
【Linux运维大神系列】Docker详解(一)
linux·运维·docker