Por que o uname -m reporta diferentemente no ambiente chroot e schroot?

2

Estou executando o sistema host Ubuntu 14.04.2, 64 bit . Usando debootstrap , instalei um sistema Ubuntu 14.04.2, 32 bit mínimo no diretório trusty32 . É assim que minha configuração schroot se parece:

[trusty_i386]
description=Ubuntu 14.04 Trusty for i386
directory=/home/dipanjan/trusty32
personality=linux32
root-users=dipanjan
type=directory
users=dipanjan

Eu entrei na jaula de 32 bits uma vez usando chroot , da próxima vez usando schroot . Surpreendentemente, a saída de uname -m é diferente. Em chroot session, x86_64 (arquitetura do sistema host) é retornado enquanto em schroot session, i686 (arquitetura do sistema guest) é retornada. Alguém pode explicar essa discrepância?

$ sudo chroot trusty32/
(trusty_i386)root@dipanjan-OptiPlex-960:/# uname -m
x86_64
(trusty_i386)root@dipanjan-OptiPlex-960:/# exit
exit
$ schroot -c trusty_i386
(trusty_i386)dipanjan@dipanjan-OptiPlex-960:~$ uname -m
i686
(trusty_i386)dipanjan@dipanjan-OptiPlex-960:~$ exit
logout
    
por Holmes.Sherlock 19.04.2016 / 11:33

1 resposta

2

chroot não altera a personalidade dos processos por padrão, portanto, o chroot você ainda vê a arquitetura (kernel) do host, x86_64 .

Por outro lado, você configurou seu trusty_i386 schroot com uma linux32 personalidade, por isso schroot é executado ao definir chroot up - e linux32 (que vincula a setarch ) altera a personalidade atual para relatar uma arquitetura de kernel de 32 bits, i686 .

    
por 19.04.2016 / 12:07