Определение архитектуры Linux из файлов

Определение архитектуры Linux из файлов

У меня есть система с невосстанавливаемым /usrразделом. Боясь, что диски испортятся, я загрузил ее в среду LiveCD, и не могу вспомнить, какая была архитектура установки, максимум, что у меня есть, это CentOS 5.5.

Из-за среды Live ни один из стандартных методов, таких как uname или проверка, не работает /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.2в системе x86, то у вас есть как минимум базовая поддержка 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/lsявляется ли программа 32-битной или 64-битной.

решение2

Просто запустите fileобраз ядра. Он покажет, в какой архитектуре был скомпилирован двоичный файл file vmlinuz-2.6.18-194.32.1.el5.

EDIT: Запуск файла на ядре OP не возвращает точную архитектуру, поэтому ответ недействителен. Я попробую это на своих ядрах и посмотрю, получу ли я больше информации.

решение3

Найдите каталог /lib64. Если он там есть и не пустой, скорее всего, у вас 64-битная версия, если нет, то 32-битная.

решение4

rpm/ все yumеще работает? rpm -q kernelЕсли он в конце, значит x86_64, это 64-битная установка.

Связанный контент