Como você aparentemente conseguiu lançar o bash, você tem o básico certo: você precisa copiar todas as bibliotecas listadas por ldd /bin/command
para um diretório no caminho de carregamento da biblioteca , mais o próprio carregador ( /lib64/ld-linux-x86-64.so.2
) que precisa estar no local codificado nos executáveis.
Se você receber o erro
error while loading shared libraries: libc.so.6: cannot open shared object file
então você está perdendo a biblioteca indicada aqui. Verifique se você colocou no diretório correto com o nome correto. Verifique se você copiou o arquivo da biblioteca e não apenas um link simbólico para ele.
Se você receber o erro
ls: error while loading shared libraries: libpthread.so.0: wrong ELF class: ELFCLASS32
você copiou uma biblioteca para a arquitetura errada - você deve ter copiado um libpthread.so.0
de 32 bits, mas está executando uma biblioteca de 64 bits.
Se você tiver mais problemas, talvez seja útil descobrir exatamente onde o carregador tenta encontrar as bibliotecas. Coloque um binário strace
no chroot (um compilado estaticamente, ou um compilado dinamicamente todas as bibliotecas necessárias) e execute chroot ls
e veja exatamente o que está falhando. Ou execute strace chroot ls
para usar o binário strace
que está fora do chroot.