Cuando ejecuto el chrootcomando aparece un error:
failed to run command ‘/bin/bash’: No such file or directory
executable
chroot
USUARIO3254789
fuente
fuente

Respuestas:
Este error significa que no hay
/bin/bashdirectorio dentro de chroot . Asegúrate de señalar dóndebashestá el ejecutable (u otro shell) en elchrootdirectorio.Si tienes
/mnt/somedir/usr/bin/bashentonces ejecutarchroot /mnt/somedir /usr/bin/bashfuente
/root/.bashrco/root/.bash_profileen suchroot. ¿Puedes cambiar temporalmente el nombre de estos archivos? ¿También puede asegurarse de quebashes ejecutable (chmod +x /chroot/bin/bash)?Tenía
/bin/bashdentro del directorio chrooteado, pero no tenía / lib y / lib64 dentro. El mensaje de chroot podría ser más descriptivo. "no existe tal archivo o directorio" realmente significa "No puedo ejecutar esto ..."./bin/bashdepende, por supuesto, de libc, ld-linux, libdl, etc., puede usarldd /bin/bashpara ver qué bibliotecas necesita.1) Puede
mount -o bindestos directorios en chroot 2) O puede copiar estas bibliotecas en chroot, si no confía en el entorno chroot para no corromperlos, así:fuente
chrootintenta iniciar el shell que está configurado en su$SHELLvariable de entorno de forma predeterminada, pero lo busca en su nuevo directorio raíz, que parece no contener/bin/bash, por lo que no puede iniciarse.Puede indicarle a chroot que inicie otro programa dentro de la nueva raíz simplemente agregándolo como parámetro:
Tenga en cuenta que la ruta del comando se interpreta dentro de su nueva raíz, por lo que, en este ejemplo, el programa llamado está de hecho en
/your/new/root/bin/foofuente
Recibía el mismo error al intentar ssh a una cuenta chrooteada en un servidor remoto. En mi caso, me faltaba el siguiente archivo en el directorio remoto lib64. El servidor es Centos6.9
Se solucionó ejecutando lo siguiente:
fuente
cp -r /lib /lib64 /secure/jailsolucionarlo, necesitaba algo de lib y lib64, y no me molesté en averiguar exactamente qué. (probablemente porque tenía habilitado multiarch)necesita ejecutar ldd contra bash
ldd $(which bash), entonces puede encontrar una dependencia que falta, por ejemplo, si no montó / copió lib64, para 64 sistemas, se solucionará este error.fuente
En caso de que esté haciendo una compilación cruzada, debe usar el simulador qemu que puede ejecutar / mnt / somedir / bin / bash una vez que copie qemu-arm-static (estoy haciendo esto para armhf) en / mnt / somedir / usr / bin podrás hacer chroot.
Mira esto para más detalles: https://blog.lazy-evaluation.net/posts/linux/debian-armhf-bootstrap.html
fuente