it-swarm-tr.com

Bir chroot denemesi sırasında şu hatayı aldım: "chroot: '/ bin / bash' komutu yürütülemedi: Exec format error"

Bu öğreticinin talimatlarını izliyordum NASIL: Temizle ve Grub 2'yi Canlı CD'den Yeniden Yükle , 1. adımda bir hatayla karşılaştığımda, komutu başlattığımda

Sudo chroot /mnt/temp

Hata şuydu:

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

Bu nereden geliyor? Nasıl geçebilirim?

21
Grand Oxymore

Doğru Canlı CD'yi kullandığınızdan emin olun. Örneğin, 64 bit CD yerine 32 bit CD kullanmadığınızdan emin olun. 64bit kodunu çalıştırmak için 64bit çekirdeğe ihtiyacınız olduğundan mimarinizi kontrol edin.

Yapabileceğiniz mimariyi belirlemek için sisteminizi / media/sda1 dizininde olacak şekilde monte ettiğiniz varsayılırsa:

ls /media/sda1/*

çıktıda lib64 görürseniz, muhtemelen 64bit sistemdir

23
Grand Oxymore

Armhf Arch için görüntü yaparken de aynı sorunu yaşadım. qemu-user-static öğesini seçin ve ardından chroot bin klasörüne kopyalayın.

Sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin
3
Ismail Moukafih

Hata, hapishanenizin (/mnt/temp) Bir bash Kabuğu içermediği veya bash Kabuğunu çalıştırmak için gerekli 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 şunları deneyin:

cp -r /bin /lib /mnt/temp

Bu, başarılı bir şekilde kroot atmanıza izin vermelidir, bu noktada başka şeyler yapabilirsiniz.

Bunu yaparken yaklaşık bir milyon yanlışlık var ve neredeyse kesinlikle bunu yapmak istemiyorsunuz. Hapishanenizi oluştururken minbase kullanın veya boş bir hedefe (örn. Sanal bir makine) ubuntu yükleyin ve ardından /mnt/temp İçine sıkıştırdığınız tüm sistemin katran arşivini oluşturun.

1
Doug

Aslında bu 64 bit 32 bit uyumsuzluktur.

Rağmen ile

cp /bin/bash /mount/temp/tmp

(32 bit exec dosyasını tmp dizinindeki yeni köke kopyalar

chroot /mount/temp /tmp/bash

chroot iyi, tüm komutlar hala başarısız. Hepsini baştan kopyalamanız gerekir.

0
cosine