Que tipo de arquivo é o janitor.out? Se estiver vinculado dinamicamente, você também precisará das bibliotecas vinculadas, que, por sua vez, também precisarão de outras bibliotecas. Você pode usar o programa ldd
para verificar quais bibliotecas compartilhadas são necessárias. Por exemplo, a saída de ldd /bin/ls
:
linux-vdso.so.1 => (0x00007fffac983000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00007f8adda8f000)
librt.so.1 => /lib/librt.so.1 (0x00007f8add887000)
libacl.so.1 => /lib/libacl.so.1 (0x00007f8add67e000)
libc.so.6 => /lib/libc.so.6 (0x00007f8add2fb000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f8add0f7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8addccc000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f8adced9000)
libattr.so.1 => /lib/libattr.so.1 (0x00007f8adccd4000)
e ldd /lib/libacl.so.1
:
linux-vdso.so.1 = > (0x00007fffd462f000)
libattr.so.1 = > /lib/libattr.so.1 (0x00007f4e348aa000)
libc.so.6 = > /lib/libc.so.6 (0x00007f4e34527000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4e34cd6000)
Se uma dessas bibliotecas não estiver satisfeita, o programa informará "Nenhum arquivo ou diretório", mesmo que o programa exista.
Editar: o seguinte é mais provável que o problema neste caso. Estou mantendo a resposta acima porque pode ser útil para alguém com a mesma mensagem de erro.
Você está executando:
sudo chroot $dir janitor.out
Isso fará com que o chroot pesquise janitor.out
em $PATH
(/ bin, / sbin, ...). Você precisa prefixar janitor.out com uma barra para executar janitor.out
, localizado na raiz do seu chroot:
sudo chroot $dir /janitor.out