Ketika saya menjalankan chroot
perintah kesalahan diberikan:
failed to run command ‘/bin/bash’: No such file or directory
Ketika saya menjalankan chroot
perintah kesalahan diberikan:
failed to run command ‘/bin/bash’: No such file or directory
Jawaban:
Kesalahan ini berarti bahwa tidak ada /bin/bash
direktori di dalam chroot . Pastikan Anda mengarahkannya ke tempat bash
(atau shell lain) yang dapat dieksekusi ada di chroot
direktori.
Jika sudah /mnt/somedir/usr/bin/bash
maka jalankanchroot /mnt/somedir /usr/bin/bash
/root/.bashrc
atau /root/.bash_profile
di chroot
. Bisakah Anda mengubah nama sementara file-file ini? Anda juga dapat memastikan bahwa bash
itu dapat dieksekusi ( chmod +x /chroot/bin/bash
)?
Saya memiliki /bin/bash
di 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/bash
tentu saja tergantung pada libc, ld-linux, libdl dll., Anda dapat menggunakan ldd /bin/bash
untuk melihat perpustakaan mana yang dibutuhkan.
1) Anda dapat mount -o bind
direktori 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/
chroot
mencoba untuk memulai shell yang diatur dalam $SHELL
variabel 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/jail
memperbaikinya, 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