为什么 uname -m 在 chroot 和 schroot 环境中报告不同?

为什么 uname -m 在 chroot 和 schroot 环境中报告不同?

我正在运行Ubuntu 14.04.2, 64 bit主机系统。使用debootstrap,我在目录中安装了一个最小Ubuntu 14.04.2, 32 bit系统。trusty32这是我的schroot配置:

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

我登录32位监狱一次使用chroot,下次使用schroot。令人惊讶的是, 的输出uname -m不同。在chroot会话中,x86_64返回(主机系统架构),而在schroot会话中,i686返回(客户系统架构)。有人可以解释这种差异吗?

$ 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

答案1

chroot不改变流程'性格默认情况下,因此chroot您仍然可以看到主机的(内核)架构x86_64

另一方面,您已经设置了自己的trusty_i386 schroot个性linux32,因此schroot在设置时运行它chroot- 并且linux32(链接到setarch) 更改当前个性以报告 32 位内核架构,i686.

相关内容