Como detectar a arquitetura do chroot de dentro do chroot?

3

Digamos, por exemplo, que o sistema host esteja executando o Debian amd64. E nesse sistema, outro Debian i386 foi instalado dentro de uma pasta usando o debootstrap. Então, suponha que um script de shell esteja sendo executado dentro do chroot.

De dentro do chroot, dpkg-architecture / uname -a mostra apenas a arquitetura que o sistema host possui (amd64).

Como detecto a arquitetura [package] do chroot? (i386)

    
por adrelanos 05.01.2016 / 17:00

1 resposta

5

dpkg-architecture e dpkg --print-architecture funcionam para mim.

/root# chroot /f/32
{3}/# uname -m
x86_64
{3}/# file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=152184668fe2d58ef2ef49e8c40d044880f8e318, stripped
{3}/# dpkg --print-architecture
i386
{3}/# dpkg-architecture
DEB_BUILD_ARCH=i386
DEB_BUILD_ARCH_BITS=32
DEB_BUILD_ARCH_CPU=i386
DEB_BUILD_ARCH_ENDIAN=little
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_GNU_CPU=i586
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=i586-linux-gnu
DEB_BUILD_MULTIARCH=i386-linux-gnu
DEB_HOST_ARCH=i386
DEB_HOST_ARCH_BITS=32
DEB_HOST_ARCH_CPU=i386
DEB_HOST_ARCH_ENDIAN=little
DEB_HOST_ARCH_OS=linux
DEB_HOST_GNU_CPU=i586
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=i586-linux-gnu
DEB_HOST_MULTIARCH=i386-linux-gnu
DEB_TARGET_ARCH=i386
DEB_TARGET_ARCH_BITS=32
DEB_TARGET_ARCH_CPU=i386
DEB_TARGET_ARCH_ENDIAN=little
DEB_TARGET_ARCH_OS=linux
DEB_TARGET_GNU_CPU=i586
DEB_TARGET_GNU_SYSTEM=linux-gnu
DEB_TARGET_GNU_TYPE=i586-linux-gnu
DEB_TARGET_MULTIARCH=i386-linux-gnu

Dito isto, você provavelmente deve fazer programas no chroot acharem que estão rodando em um sistema de 32 bits. Você pode fazer isso executando-os com a personalidade correta. O utilitário setarch (parte de util-linux ) faz isso, ou simplesmente

linux32 chroot /path/to/chroot

Se você configure seu chroot com o schroot , declarando que a personalidade como linux32 na definição do chroot cuida disso.

    
por 06.01.2016 / 01:18