尝试进行chroot期间,出现以下错误:“ chroot:无法运行命令'/ bin / bash':执行格式错误”


Answers:


22

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

假设您将系统挂载到/ media / sda1中,以确定其体系结构,则可以:

ls /media/sda1/*

如果您在输出中看到lib64,则可能是64位系统


它是但仍然不能
更改根目录


1

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

如果您使用以下方式创建了监狱:

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,此时您可以执行其他操作。

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


0

确实,这是64位32位不兼容。

虽然有

cp /bin/bash /mount/temp/tmp

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

chroot /mount/temp /tmp/bash

chroot很好,所有命令仍然失败。您将不得不全部复制它们。


-1

就我而言,我试图将chroot转换为64位版本的Linux,但当前的Linux是32位。

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


与上面@GrandOxymore的答案相同。
Karl Richter

@KarlRichter类似但不一样。在64位OS中运行32位程序与在64位虚拟环境(或OS)中运行32位程序不同。我可以运行一个32位的来宾操作系统,它将运行良好。
azuer88

-2

我认为是一个错误。

`/ bin / bash'

但不是

'bin / bash'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.