我正在使用 Debian 12 实时环境并创建了一个文件夹:
mkdir /mnt/boot
当我执行时sudo chroot/mnt/boot
,报出以下错误:
chroot:failed to run command '/bin/bash':No such file or directory
我发现了这个问题(https://serverfault.com/questions/162362/chroot-fails-cannot-run-command-bin-bash-no-such-file-or-directory),看上去跟我的问题很像,但是我按照上面的步骤操作之后我的问题还是没有解决,不知道我的问题出在哪里?
1# 将 sda1 安装到/mnt/boot
:
user@debian:sudo mount /dev/sda1 /mnt/boot
2# /bin/bash
存在:
user@debian:/mnt/boot$whereis /bin/bash
bash: /usr/bin/bash /user/share/man/man1/bash.1.gz
user@debian:/mnt/boot$ls /bin/bash
/bin/bash
3# cp .so 来自lib
和lib64
:
user@debian:/mnt/boot$ls lib
ld-linux-86-64.so.2 libc.so.6 libdl.so.2 libtnfo.so.6
4# 将/mnt/boot/lib64
其符号化为/mnt/boot/lib
:
user@debian:/mnt/boot$sudo mkdir lib64
user@debian:/mnt/boot$sudo ln -s /mnt/boot/lib /mnt/boot/lib64
5#底板:
user@debian:/mnt/boot$ldd /bin/bash
linux-vdso.so.1 (0x00007ffdb8d1000)
libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6(0x00007f3cda309000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6(0x00007f3cda128000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3cda493000)
答案1
您不是在检查bash
chroot 内部的二进制文件,而是在检查 chroot 外部的二进制文件。确保二进制文件和所有相关库都存在里面chroot 目录。