Selama upaya chroot, saya mendapatkan kesalahan ini: "chroot: gagal menjalankan perintah '/ bin / bash': Kesalahan format Exec"


Jawaban:


22

Pastikan Anda menggunakan Live CD yang tepat. Misalnya, verifikasi Anda tidak menggunakan CD 32bit, bukan CD 64bit. Anda membutuhkan kernel 64bit untuk menjalankan kode 64bit, jadi periksalah arsitektur Anda.

Dengan asumsi Anda memasang sistem Anda untuk chroot di / media / sda1 , untuk menentukan arsitektur Anda dapat:

ls /media/sda1/*

jika Anda melihat lib64 di output, itu mungkin sistem 64bit


Ini tetapi masih belum bisa chroot
Starx

2

Saya memiliki masalah yang sama ketika membuat gambar untuk armhf arch. Saya harus menginstal qemu-user-staticdan kemudian menyalinnya ke folder chroot bin.

sudo cp /usr/bin/qemu-arm-static /mnt/chroot/usr/bin

1

Kesalahan ini berarti bahwa jail Anda ( /mnt/temp) tidak mengandung bash shell, atau tidak mengandung pustaka yang diperlukan untuk menjalankan bash shell.

Jika Anda membuat penjara menggunakan sesuatu seperti ini:

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

Anda mungkin bermaksud melakukan ini sebagai gantinya:

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

Namun, sebagai jawaban teknis untuk masalah Anda, cobalah:

cp -r /bin /lib /mnt/temp

Ini akan memungkinkan Anda melakukan chroot dengan sukses, pada titik mana Anda dapat melakukan hal-hal lain.

Ada sekitar sejuta hal yang salah dengan melakukan itu, dan hampir pasti Anda tidak ingin melakukan itu. Gunakan minbase ketika Anda membuat jail, atau instal ubuntu pada target kosong (mis. Mesin virtual) dan buat arsip tar dari seluruh sistem yang kemudian Anda dekompres ke dalamnya /mnt/temp.


0

Memang ini adalah ketidakcocokan 64-bit 64-bit.

Meskipun dengan

cp /bin/bash /mount/temp/tmp

(salinan 32-bit exec ke root baru di tmpdirektori

chroot /mount/temp /tmp/bash

chrootbaik-baik saja, semua perintah masih gagal. Anda harus menyalin semuanya.


-1

Dalam kasus saya, saya mencoba chroot ke versi 64-bit Linux tetapi Linux saya saat ini 32-bit.

Saya telah memasang image disk (master image, untuk replikasi pada banyak mesin).


Jawaban yang sama dengan @ GrandOxymore di atas.
Karl Richter

@KarlRichter Mirip tapi tidak sama. Menjalankan program 32bit dalam OS 64bit tidak sama dengan menjalankan program 32bit di lingkungan virtual 64bit (atau OS). Saya bisa menjalankan os guest 32bit dan itu akan berjalan dengan baik.
azuer88

-2

Saya pikir dalam adalah BUG.

`/ bin / bash '

tapi tidak

'bin / bash'

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.