Ketika saya menjalankan chrootperintah kesalahan diberikan:
failed to run command ‘/bin/bash’: No such file or directory
Ketika saya menjalankan chrootperintah kesalahan diberikan:
failed to run command ‘/bin/bash’: No such file or directory
Jawaban:
Kesalahan ini berarti bahwa tidak ada /bin/bashdirektori di dalam chroot . Pastikan Anda mengarahkannya ke tempat bash(atau shell lain) yang dapat dieksekusi ada di chrootdirektori.
Jika sudah /mnt/somedir/usr/bin/bashmaka jalankanchroot /mnt/somedir /usr/bin/bash
/root/.bashrcatau /root/.bash_profiledi chroot. Bisakah Anda mengubah nama sementara file-file ini? Anda juga dapat memastikan bahwa bashitu dapat dieksekusi ( chmod +x /chroot/bin/bash)?
Saya memiliki /bin/bashdi dalam direktori chroot, tetapi saya tidak memiliki / lib dan / lib64 di dalamnya. Pesan dari chroot bisa lebih deskriptif. "Tidak ada file atau direktori" yang benar-benar berarti "Saya tidak bisa menjalankan ini ...".
/bin/bashtentu saja tergantung pada libc, ld-linux, libdl dll., Anda dapat menggunakan ldd /bin/bashuntuk melihat perpustakaan mana yang dibutuhkan.
1) Anda dapat mount -o binddirektori ini di bawah chroot 2) Atau Anda dapat menyalin perpustakaan ini ke chroot, jika Anda tidak percaya enro chroot untuk tidak merusaknya, seperti:
cp -a /usr rootfs/
cp -a /lib rootfs/
cp -a /lib64 rootfs/
chrootmencoba untuk memulai shell yang diatur dalam $SHELLvariabel lingkungan Anda secara default, tetapi mencari di dir root baru Anda, yang tampaknya tidak mengandung /bin/bash, sehingga tidak dapat memulai.
Anda dapat memberi tahu chroot untuk memulai program lain di dalam root baru dengan hanya menambahkannya sebagai parameter:
chroot /your/new/root /bin/foo --options...
Perhatikan bahwa lintasan perintah ditafsirkan di dalam root baru Anda, jadi dalam contoh ini program yang dipanggil sebenarnya di/your/new/root/bin/foo
Saya mendapatkan kesalahan yang sama ketika mencoba ssh ke akun chroot di server jauh. Dalam kasus saya, saya kehilangan file berikut di direktori lib64 jarak jauh. Server adalah Centos6.9
ld-linux-x86-64.so.2
Itu diperbaiki dengan mengeksekusi berikut:
cp /lib64/ld-linux-x86-64.so.2 /secure/jail/lib64/
cp -r /lib /lib64 /secure/jailmemperbaikinya, saya butuh sesuatu dari lib dan lib64, dan saya tidak repot-repot mencari tahu apa. (mungkin karena saya mengaktifkan multiarch)
Jika Anda melakukan kompilasi silang, Anda perlu menggunakan simulator qemu yang dapat menjalankan / mnt / somedir / bin / bash setelah Anda menyalin qemu-arm-static (saya melakukan ini untuk armhf) ke / mnt / somedir / usr / bin Anda dapat melakukan chroot.
Lihat ini untuk lebih jelasnya: https://blog.lazy-evaluation.net/posts/linux/debian-armhf-bootstrap.html