chroot: falha ao executar o comando '/bin/bash': Arquivo ou diretório não encontrado

chroot: falha ao executar o comando '/bin/bash': Arquivo ou diretório não encontrado

Quando executo o chrootcomando ocorre um erro:

failed to run command ‘/bin/bash’: No such file or directory 

Responder1

Este erro significa que não há /bin/bashdiretóriodentro do chroot. Certifique-se de apontar para onde basho executável (ou outro shell) está no chrootdiretório.

Se você tiver /mnt/somedir/usr/bin/bash, execute chroot /mnt/somedir /usr/bin/bash.

Além do acima, você também precisa adicionar libcdependências de diretório, conforme mencionado na respostaaqui.

Responder2

Eu tinha /bin/bashdentro do diretório chroot, mas não tinha /libdentro /lib64dele. A mensagem de chrootpoderia ser mais descritiva. "nenhum arquivo ou diretório" realmente significa "Não consigo executar isso...".

/bin/bashdepende, é claro libc, de ld-linux, libdletc., você pode usar ldd /bin/bashpara ver quais bibliotecas são necessárias.

  1. Você pode mount -o bindesses diretórios emchroot
  2. Ou você pode copiar essas bibliotecas para chroot, se não confiar no ambiente chroot para não corrompê-las, assim:
    cp -a /usr rootfs/
    cp -a /lib rootfs/
    cp -a /lib64 rootfs/
    

Responder3

chroottenta iniciar o shell que está definido em sua $SHELLvariável de ambiente por padrão, mas procura por ele em seu novo diretório raiz, que parece não conter /bin/bash, portanto não pode ser iniciado.

Você pode dizer ao chroot para iniciar outro programa dentro da nova raiz simplesmente adicionando-o como parâmetro:

chroot /your/new/root /bin/foo --options...

Observe que o caminho do comando é interpretadodentrosua nova raiz, então neste exemplo o programa chamado está de fato em/your/new/root/bin/foo

Responder4

Eu estava recebendo o mesmo erro ao tentar fazer ssh para uma conta chroot em um servidor remoto. No meu caso, estava faltando o seguinte arquivo no diretório remoto lib64.O servidor é Centos6.9

ld-linux-x86-64.so.2

Foi corrigido executando o seguinte:

cp /lib64/ld-linux-x86-64.so.2 /secure/jail/lib64/

informação relacionada