Durante un intento de chroot, recibí este error: "chroot: error al ejecutar el comando '/ bin / bash': error de formato de Exec"

18

Estaba siguiendo las instrucciones de este tutorial CÓMO: purgar y volver a instalar Grub 2 del Live CD , cuando Encontré un error en el paso 1, cuando lancé el comando

sudo chroot /mnt/temp

El error fue el siguiente:

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

¿De dónde viene eso? ¿Cómo puedo pasar?

    
pregunta Grand Oxymore 21.11.2010 - 11:29

6 respuestas

20

Verifique que esté utilizando el Live CD correcto. Por ejemplo, verifique que no esté usando un CD de 32 bits en lugar de un CD de 64 bits. Necesita un kernel de 64 bits para ejecutar código de 64 bits, así que verifique su arquitectura.

Suponiendo que haya montado su sistema para que sea clonado en / media / sda1 , para determinar la arquitectura, puede:

ls /media/sda1/*

si ve lib64 en la salida, probablemente sea un sistema de 64 bits

    
respondido por el Grand Oxymore 21.11.2010 - 11:30
1

El error significa que su cárcel ( /mnt/temp ) no contiene un shell bash, o no contiene las bibliotecas necesarias para ejecutar el shell bash.

Si creaste tu cárcel usando algo como esto:

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

Probablemente quisiste hacer esto en su lugar:

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

Sin embargo, como respuesta técnica a su problema, intente:

cp -r /bin /lib /mnt/temp

Esto debería permitirle realizar un chroot exitosamente, en ese momento puede hacer otras cosas.

Sin embargo, hay aproximadamente un millón de cosas mal al hacer eso, y casi seguro que no quieres hacer eso. Usa minbase cuando crees tu cárcel, o instala ubuntu en un objetivo en blanco (por ejemplo, una máquina virtual) y crea un archivo tar de todo el sistema que luego descomprimes en /mnt/temp .

    
respondido por el Doug 19.04.2011 - 04:26
1

Tuve el mismo problema al hacer una imagen para armhf arch. Tuve que instalar qemu-user-static y luego copiarlo a la carpeta chroot bin.

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
    
respondido por el Ismail Moukafih 30.11.2016 - 10:31
0

De hecho, esta es una incompatibilidad de 32 bits de 64 bits.

Aunque con

cp /bin/bash /mount/temp/tmp

(copia el ejecutor de 32 bits en la nueva raíz en el directorio tmp

chroot /mount/temp /tmp/bash

chroot está bien, todos los comandos aún fallan. Tendría que copiarlos por todas partes.

    
respondido por el cosine 10.11.2014 - 21:13
-1

En mi caso, estaba tratando de entrar en una versión de 64 bits de Linux pero mi Linux actual era de 32 bits.

Había montado una imagen de disco (imagen maestra para la replicación en varias máquinas).

    
respondido por el azuer88 02.03.2016 - 06:41
-2

Creo que es un ERROR.

'/ bin / bash'

pero no

'bin / bash'

    
respondido por el weakdancer 18.01.2011 - 07:37

Lea otras preguntas en las etiquetas