Bir chroot girişimi sırasında bu hatayı aldım: “chroot: '/ bin / bash' komutunu çalıştıramadı: Exec format hatası”

18

Bu öğreticinin talimatlarını NASIL: Canlı CD'den Grub 2'yi temizle ve yeniden yükle Komutu başlattığım için 1. adımda bir hatayla karşılaştım

sudo chroot /mnt/temp

Hata şu oldu:

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

Bu nereden geliyor? Nasıl geçebilirim?

    
sordu Grand Oxymore 21.11.2010 12:29

6 cevap

20

Doğru Live CD'sini kullandığınızı doğrulayın. Örneğin, 64 bit CD yerine 32 bit bir CD kullanmadığınızı doğrulayın. 64 bit kodu çalıştırmak için 64 bit çekirdeğe ihtiyacınız var, mimarinizi kontrol edin.

Yapacağınız mimariyi belirlemek için, sisteminizi / media / sda1 içinde chroot haline getirdiğini varsayalım:

ls /media/sda1/*

Eğer çıktıda lib64 görüyorsanız, muhtemelen bir 64bit sistemdir

    
verilen cevap Grand Oxymore 21.11.2010 12:30
1

Hata, hapishanenizin ( /mnt/temp ) bir bash kabuğu içermediği veya bash kabuğunu çalıştırmak için gereken kitaplıkları içermediği anlamına gelir.

Hapishanenizi böyle bir şey kullanarak oluşturduysanız:

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

Muhtemelen bunun yerine bunu yapmak istediniz:

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

Ancak, sorununuza teknik bir cevap olarak şunu deneyin:

cp -r /bin /lib /mnt/temp

Bu, başarılı bir şekilde chroot yapmanıza izin vermeli, bu noktada başka şeyler yapabilirsiniz.

Bunu yapmakta yaklaşık bir milyon şey yanlıştır ve neredeyse kesinlikle bunu yapmak istemezsiniz. Hapishanenizi oluştururken minbase kullanın veya boş bir hedefe ubuntu kurun (ör. Sanal bir makine) ve daha sonra /mnt/temp 'e sıkıştırdığınız tüm sistemin bir tar arşivini oluşturun.

    
verilen cevap Doug 19.04.2011 06:26
1

Armhf arch için bir görüntü oluştururken aynı problemi yaşadım. % Co_de% dosyasını yüklemek ve daha sonra chroot bin klasörüne kopyalamak zorunda kaldım.

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
    
verilen cevap Ismail Moukafih 30.11.2016 11:31
0

Gerçekten de bu, 64 bit 32 bit uyumsuzluktur.

Bununla birlikte

cp /bin/bash /mount/temp/tmp

(32 bit çalıştırmayı tmp dizinindeki yeni köke kopyalar

chroot /mount/temp /tmp/bash

chroot öğesi iyi, tüm komutlar hala başarısız. Hepsini kopyalamak zorunda kalacaksın.

    
verilen cevap cosine 10.11.2014 22:13
-1

Benim durumumda, Linux'un 64-bit sürümüne chroot yapmaya çalışıyordum ama şu anki Linux'um 32-bitti.

Bir disk görüntüsü (birden fazla makinede çoğaltma için ana görüntü) yerleştirmiştim.

    
verilen cevap azuer88 02.03.2016 07:41
-2

Sanırım bir HAT.

'/ bin / bash'

değil,

'bin / bash'

    
verilen cevap weakdancer 18.01.2011 08:37

Etiketlerdeki diğer soruları oku