我按照本教程HOWTO: Purge and Reinstall Grub 2 from the Live CD的说明进行操作,当我在第 1 步遇到错误时,我启动了命令
sudo chroot /mnt/temp
错误如下:
chroot: failed to run command `/bin/bash': Exec format error
那是从哪里来的?我该如何通过?
我按照本教程HOWTO: Purge and Reinstall Grub 2 from the Live CD的说明进行操作,当我在第 1 步遇到错误时,我启动了命令
sudo chroot /mnt/temp
错误如下:
chroot: failed to run command `/bin/bash': Exec format error
那是从哪里来的?我该如何通过?
确认您使用的是正确的 Live CD。例如,验证您使用的不是 32 位 CD,而是 64 位 CD。您需要一个 64 位内核来运行 64 位代码,因此请检查您的架构。
假设您将系统安装到 chroot 中/media/sda1,以确定您可以的体系结构:
ls /media/sda1/*
如果您在输出中看到 lib64,它可能是 64 位系统
在为 armhf 拱门制作图像时,我遇到了同样的问题。我必须安装
qemu-user-static
然后将其复制到 chroot bin 文件夹。您可能需要运行
那么你应该能够 chroot 进入环境
该错误意味着您的 jail (
/mnt/temp
) 不包含 bash shell,或者不包含运行 bash shell 所需的库。如果您使用以下方式创建了监狱:
您可能打算这样做:
但是,作为您问题的技术答案,请尝试:
这应该允许您成功 chroot,此时您可以做其他事情。
不过,这样做有大约一百万件事是错误的,而且几乎可以肯定你不想这样做。创建监狱时使用 minbase,或在空白目标(例如虚拟机)上安装 ubuntu 并创建整个系统的 tar 存档,然后将其解压缩为
/mnt/temp
.实际上这是 64 位 32 位不兼容。
虽然与
(将 32 位 exec 复制到目录中的新
tmp
根chroot
很好,所有命令仍然失败。您将不得不将它们全部复制。就我而言,我试图 chroot 进入 64 位版本的 Linux,但我当前的 Linux 是 32 位。
我已经安装了一个磁盘映像(主映像,用于在多台机器上进行复制)。
我认为是一个BUG。
`/bin/bash'
但不是
'bin/bash'