Não é possível executar o executável dinâmico de 32 bits no Ubuntu de 64 bits

0

Para o registro, eu passei quase 6 horas hoje trabalhando nisso. Eu já esgotou o Google e outras perguntas semelhantes no Stack Overflow / Superuser e em várias outras listas de discussão.

Estou tentando executar o seguinte aplicativo:

# file ./ncsvc
./ncsvc: setuid setgid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped

# ls -la ncsvc
-rws--s--x 1 root root 1931688 Dec 19 20:41 ncsvc

Estou executando uma versão de 64 bits do Ubuntu:

# uname -m
x86_64

Agora, com esse passado, aqui estão alguns detalhes sobre as bibliotecas que esse aplicativo precisa:

# readelf -a ./ncsvc | grep interpreter
      [Requesting program interpreter: /lib/ld-linux.so.2]

# readelf -a ./ncsvc | grep NEEDED
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libpthread.so.0]
 0x00000001 (NEEDED)                     Shared library: [libm.so.6]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

É aqui que estou ficando preso:

# ls -la /lib/ld-linux.so.2
lrwxrwxrwx 1 root root 32 Dec 19 23:31 /lib/ld-linux.so.2 -> /lib/x86_64-linux-gnu/ld-2.15.so

# locate libdl.so.2
/lib/i386-linux-gnu/libdl.so.2
/lib/x86_64-linux-gnu/libdl.so.2

# locate libz.so.1
/lib/i386-linux-gnu/libz.so.1
/lib/i386-linux-gnu/libz.so.1.2.3.4
/lib/x86_64-linux-gnu/libz.so.1
/lib/x86_64-linux-gnu/libz.so.1.2.3.4

# locate libpthread.so.0
/lib/i386-linux-gnu/libpthread.so.0
/lib/x86_64-linux-gnu/libpthread.so.0

# locate libm.so.6
/lib/i386-linux-gnu/libm.so.6
/lib/x86_64-linux-gnu/libm.so.6

# locate libc.so.6
/lib/i386-linux-gnu/libc.so.6
/lib/x86_64-linux-gnu/libc.so.6

Tanto quanto eu posso dizer, eu tenho o vinculador dinâmico e todas as bibliotecas compartilhadas que ele precisa para ser executado (tl; ia32-libs IS instalado). Exceto quando eu o executo, recebo esse erro.

# ./ncsvc
bash: ./ncsvc: cannot execute binary file

Por último, não tenho certeza se isso significa alguma coisa útil.

# ldd -v ./ncsvc
        not a dynamic executable
    
por Chris Olin 20.12.2013 / 05:54

1 resposta

0

O kernel não foi compatível com o suporte à emulação de 32 bits. A reinicialização e a escolha de um kernel compatível cumpriram esse problema.

    
por 04.10.2015 / 01:16