web-dev-qa-db-ja.com

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

chrootを使用して32ビットのjailにログインし、次に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
2
Holmes.Sherlock

chrootはプロセスを変更しません ' personality デフォルトでは、chroot内に、ホストの(カーネル)アーキテクチャx86_64が表示されます。

一方、trusty_i386schrootlinux32パーソナリティで設定したので、schrootchrootを設定するときにそれを実行します— linux32setarch にリンク)は、現在のパーソナリティを変更して、32ビットカーネルアーキテクチャi686を報告します。

2
Stephen Kitt