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?
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
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
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.
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.