Linux

為什麼 uname -m 在 chroot 和 schroot 環境中報告不同?

  • April 19, 2016

我正在執行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

chroot預設情況下不會更改程序的個性,因此chroot您仍然可以看到主機的(核心)架構,x86_64.

另一方面,您已經設置了您trusty_i386 schrootlinux32個性,因此schroot在設置時執行它chroot- 並且linux32(連結到setarch)更改目前個性以報告 32 位核心架構,i686.

引用自:https://unix.stackexchange.com/questions/277486