【发布时间】:2016-02-10 19:15:37
【问题描述】:
在尝试挽救无法启动的 Debian Jessie 系统的过程中,尝试 chroot 时出现以下错误:
chroot: failed to run command ‘/bin/bash’: No such file or directory
我一直在谷歌搜索,据说它与 64 位/32 位冲突有关(从 32 位 chroot 到 64 位,反之亦然),但我不知道这如何适用于这里,因为我正在拯救一个 64 位系统一个 64 位 live-hybrid-Debian-USB 记忆棒。
/bin/bash 位于 chroot 目录中,库依赖项也是如此,根据 ldd。
有人知道导致错误的原因吗?
下面是我的挂载点和一个 ls:
# mount |grep mnt
/dev/mapper/centos_vh200-root on /mnt/vh2 type ext4 (rw,relatime,data=ordered)
/dev/sda1 on /mnt/vh2/boot type ext4 (rw,relatime,data=ordered)
none on /mnt/vh2/proc type proc (rw,relatime)
devtmpfs on /mnt/vh2/dev type devtmpfs (rw,nosuid,size=10240k,nr_inodes=414264,mode=755)
sys on /mnt/vh2/sys type sysfs (rw,relatime)
# ls -l /mnt/vh2/bin/bash
-rwxr-xr-x 1 root root 1029624 Nov 12 2014 /mnt/vh2/bin/bash
这是 bash 的 ldd 输出:
# ldd /mnt/vh2/bin/bash
linux-vdso.so.1 (0x00007ffd49bcc000)
libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007fad99f1a000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fad99cf0000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fad99aec000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fad99743000)
/lib64/ld-linux-x86-64.so.2 (0x00007fad9a13f000)
终端会话:
# mount /dev/centos_vh200/root /mnt/vh2
# mount /dev/sda1 /mnt/vh2/boot/
# mount -t proc none /mnt/vh2/proc/
# mount -o bind /dev /mnt/vh2/dev/
# mount -t sysfs sys /mnt/vh2/sys/
# chroot /mnt/vh2/ /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory
【问题讨论】:
-
在 chroot 中显示
mount和ls -l bin/bash。整个终端会话也会有所帮助。 -
ldd /mnt/vh2/bin/bash在 chroot 之外完成,因此它可以找到您的实时系统库。在/mnt/vh2/而不是/中查找库。 -
哦,对了……这很有道理。图书馆不见了,还有许多其他本应在
/lib目录中的东西。所以,我从备份中同步了,chroot /mnt/vh2/ /bin/bash工作了。感谢您的帮助。 -
我如何为您提供荣誉?
-
答案已添加,接受即可。
标签: chroot