從檔案確定 Linux 體系結構

從檔案確定 Linux 體系結構

我的系統有一個不可恢復的/usr分割區。由於擔心驅動器會壞,我將其啟動到 LiveCD 環境,但我不記得安裝架構是什麼,我最多記得它是 CentOS 5.5。

由於 Live 環境的原因,標準方法(例如 uname 或checking)都不起作用/proc

這是使用的核心:vmlinuz-2.6.18-194.32.1.el5 有什麼我可以掃描檔案來確定架構是 32 位元還是 64 位元的嗎?

或者我可以在檔案系統上查看其他內容?任何東西都不起作用/usr,因為該分區現在已經死了。

答案1

file vmlinuz-2.6.18-194.32.1.el5會告訴你核心是為什麼架構編譯的。如果有一個文件/boot/config-2.6.18-194.32.1.el5,它將提供有關核心編譯選項的更多信息,包括處理器架構。

ls /lib*會告訴你用戶態支援什麼架構。例如,如果在/lib/ld-linux.so.2x86 系統上,那麼您至少有基本的 32 位元支援。如果有/lib/ld-linux-x86-64.so.2/lib64/ld-linux-x86-64.so.2那麼您至少有基本的 64 位元 (amd64) 支援。file /bin/ls會告訴您哪些架構實用程式是從哪些架構編譯的(通常,整個作業系統使用者區是針對一種架構編譯的,也許還有另一個用於自訂應用程式的 ABI 的附加程式庫)。

核心和使用者區並不總是相同的體系結構。 Amd64 核心可以運行 32 位元使用者程式(但反之則不然)。如果您想知道您的 CentOS 是 32 位元還是 64 位元版本,請檢查是/bin/ls32 位元還是 64 位元程式。

答案2

file只需在核心映像上運行即可。它將顯示二進位檔案被編譯為什麼架構。 file vmlinuz-2.6.18-194.32.1.el5

編輯:在 OP 核心上執行檔案不會傳回確切的體系結構,因此答案無效。我會在我的核心上嘗試一下,看看是否能得到更多資訊。

答案3

尋找 /lib64 目錄,如果它在那裡並且不為空,則您可能安裝了 64 位,如果不存在則它是 32 位。

答案4

rpm/還有效嗎yumrpm -q kernel應該可以看出,如果它位於x86_64末尾,則它是 64 位元設定。

相關內容