'/ bin / bash': nenhum arquivo ou diretório

0

Eu tenho seguido estas instruções sobre como criar um live CD da minha instalação atual do ubuntu 14.04. Quando tento executar sudo chroot ${WORK}/rootfs /bin/bash , em que WORK=/some/dir/that/REALLY/exist

Eu recebo um erro que bin / bash não é arquivo ou diretório. Eu posso ls / bin e vejo um arquivo chamado bash, mas não posso abri-lo, dizendo-me que não é um arquivo de texto (faz sentido).

none@none-ubuntu:/$ sudo chroot ${WORK}/rootfs /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory

arquivo bash está lá desde que eu posso ver em ls

none@none-ubuntu:/$ ls /bin
bash                  fgconsole   nc                       sed
bunzip2               fgrep       nc.openbsd               setfacl
...(lot more files here)......

e desde que me perguntaram sobre as permissões

none@none-ubuntu:/$ ls -l /bin
total 9880
-rwxr-xr-x 1 root root 1017016 Απρ  24  2014 bash
-rwxr-xr-x 1 root root   31152 Οκτ  21  2013 bunzip2
-rwxr-xr-x 1 root root 1918032 Νοέ  14  2013 busybox

Eu tenho procurado pela web, mas infelizmente usar "nenhum arquivo ou diretório" gera muitas mensagens não relacionadas

editar:

none@none-ubuntu:/$ ls -l ${WORK}/rootfs/bin
total 9866
-rwxrwx--- 1 root vboxsf 1017016 Απρ  24  2014 bash
-rwxrwx--- 1 root vboxsf   31152 Οκτ  21  2013 bunzip2


 none@none-ubuntu:/$ ldd ${WORK}/rootfs/bin/bash
 linux-vdso.so.1 =>  (0x00007fff183fe000)
 libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f4569d8e000)
 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4569b8a000)
 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f45697c4000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f4569fce000)

none@none-ubuntu:/$ ls -l ${WORK}/rootfs/lib
total 304
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 apparmor
drwxrwx--- 1 root vboxsf  8192 Ιούλ 23  2014 brltty
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 crda
drwxrwx--- 1 root vboxsf 36864 Ιούλ 23  2014 firmware
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 hdparm
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 ifupdown
drwxrwx--- 1 root vboxsf  4096 Ιούλ 23  2014 init
-rwxrwx--- 1 root vboxsf 71512 Δεκ  24  2013 klibc-P2s_k-gf23VtrGgO2_4pGkQgwMY.so
-rwxrwx--- 1 root vboxsf 27392 Ιαν   9  2014 libip4tc.so.0.1.0
-rwxrwx--- 1 root vboxsf 31520 Ιαν   9  2014 libip6tc.so.0.1.0
-rwxrwx--- 1 root vboxsf  5816 Ιαν   9  2014 libiptc.so.0.0.0
-rwxrwx--- 1 root vboxsf 47712 Ιαν   9  2014 libxtables.so.10.0.0
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 linux-sound-base
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 lsb
drwxrwx--- 1 root vboxsf     0 Απρ  10  2014 modprobe.d
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 modules
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 modules-load.d
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 plymouth
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 recovery-mode
drwxrwx--- 1 root vboxsf     0 Ιούλ 23  2014 resolvconf
drwxrwx--- 1 root vboxsf  4096 Ιούλ 23  2014 systemd
drwxrwx--- 1 root vboxsf  4096 Μάρ  22  2014 terminfo
drwxrwx--- 1 root vboxsf  4096 Ιούν  2 13:10 udev
drwxrwx--- 1 root vboxsf  4096 Ιούλ 23  2014 ufw
drwxrwx--- 1 root vboxsf 28672 Ιούν  7 22:08 x86_64-linux-gnu
drwxrwx--- 1 root vboxsf 24576 Ιούλ 23  2014 xtables

Atualizar

Obrigado a todos pela ajuda e informações fornecidas. Infelizmente eu poderia concluir esta tarefa. Parece que a solução deve ter sido a criação de um drive virtual (como sugerido por Germar). Fiz isso e fiz todo o processo desde o começo. mas quando eu tive que fazer o apt-get enquanto chroot, eu estava recebendo erros dizendo que ele não pode se conectar ao site ppa. enquanto tentava consertar isso com algumas coisas encontradas na internet, a VM parou de funcionar e agora não inicializa! Eu acho que a melhor maneira de criar um live cd de uma instalação do ubuntu no disco rígido é ter o ubuntu no disco rígido e não em algumas VMs.

Obrigado novamente (não tenho certeza se devo excluir isso ou não, mas guardo para referência futura)

    
por Skaros Ilias 07.06.2015 / 22:55

1 resposta

2

errno códigos às vezes não são muito específicos. Além de possivelmente significar que o arquivo específico em questão ( /bin/bash ) não existe, ao executar um programa "Nenhum arquivo ou diretório" ( ENOENT ) também pode significar que seu interpretador ELF não existe, ou que uma das bibliotecas compartilhadas de que ela precisa não existe. Eu suspeito que /lib ou /lib64 dentro do ambiente chroot que você está construindo está quebrado de alguma forma, talvez porque os links simbólicos estejam apontando para os lugares errados.

Teste ls -l $WORK/lib64/ld-linux-x86-64.so.2 e, se ele reportar um link simbólico, tente da mesma forma para qualquer que seja o destino desse link simbólico, exceto em relação a $WORK (se ls disser que o link aponta para /lib/x86_64-linux-gnu/ld-2.19.so , você d run ls -l $WORK/lib/x86_64-linux-gnu/ld-2.19.so ). Repita para os vários caminhos da biblioteca em /lib listado na saída de ldd até encontrar a coisa que realmente está faltando no contexto do chroot.

    
por Colin Watson 08.06.2015 / 00:55