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

相关推荐
ghie90907 分钟前
在Centos系统上如何有效删除文件和目录的指令汇总
linux·运维·centos
Linux-palpitate20 分钟前
Keepalived+LVS实现LNMP网站的高可用部署
linux·运维·服务器·mysql·lvs
潇-xiao27 分钟前
进程状态 + 进程优先级切换调度-进程概念(5)
linux·笔记
江公望2 小时前
Linux kernel regcache_cache_only()函数详解
linux
liuyunluoxiao2 小时前
基于生产者消费者模型的线程池【Linux操作系统】
linux
程序员黄老师3 小时前
Ubuntu 24.04上安装 Intelligent Pinyin 中文输入法
linux·运维·ubuntu
HONG_YANG4 小时前
ERPNext 介绍、安装和维护建议
linux
HONG_YANG4 小时前
ERPNext 搭建教程:Linux 一键部署与维护
linux
Enti7c4 小时前
什么是void,什么时候使用void类型?never和void的区别
linux·运维·ubuntu
scilwb5 小时前
基于Isaac Sim场景的Coverage Path Planning 项目部署完整指南
linux