在chroot尝试期间,我收到此错误:“chroot:无法运行命令’/ bin / bash’:执行格式错误”

我按照本教程的说明HOWTO:当我在步骤1遇到错误时, 从Live CD中清除并重新安装Grub 2 ,因为我启动了命令

sudo chroot /mnt/temp 

错误如下:

 chroot: failed to run command `/bin/bash': Exec format error 

它来自哪里? 我如何度过难关?

确认您使用的是正确的Live CD。 例如,validation您没有使用32位CD而不是64位CD。 您需要64位内核才能运行64位代码,因此请检查您的体系结构。

假设您已将系统挂载到/ media / sda1中 ,以确定您可以的架构:

ls /media/sda1/*

如果你在输出中看到lib64,它可能是一个64位系统

该错误意味着您的jail( /mnt/temp )不包含bash shell,或者不包含运行bash shell所需的库。

如果您使用以下内容创建了jail:

 debootstrap --variant=buildd --arch i386 lucid /mnt/temp \ http://archive.ubuntu.com/ubuntu/ 

您可能打算这样做:

 debootstrap --variant=minbase --arch i386 lucid /mnt/temp \ http://archive.ubuntu.com/ubuntu/ 

但是,作为您的问题的技术答案,请尝试:

 cp -r /bin /lib /mnt/temp 

这应该允许您成功chroot,此时您可以做其他事情。

这样做有大约一百万个错误,而且几乎可以肯定你不想这样做。 在创建jail时使用minbase,或者在空白目标(例如虚拟机)上安装ubuntu并创建整个系统的tar存档,然后将其解压缩到/mnt/temp

我为armhf arch制作图像时遇到了同样的问题。 我必须安装qemu-user-static ,然后将其复制到chroot bin文件夹。

 sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin 

实际上,这是一个64位32位不兼容性。

虽然有

 cp /bin/bash /mount/temp/tmp 

(将32位exec复制到tmp目录中的新根目录

 chroot /mount/temp /tmp/bash 

chroot很好,所有命令仍然失败。 你必须将它们全部复制。

在我的情况下,我试图chroot到64位版本的Linux,但我目前的Linux是32位。

我安装了一个磁盘映像(主映像,用于在多台计算机上进行复制)。

我认为是一个BUG。

`/斌/庆典”

但不是

“斌/庆典”