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

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

Из-за среды Live ни один из стандартных методов не работает, например, uname или check /proc .

Вот ядро, которое было использовано: vmlinuz-2.6.18-194.32.1.el5 Есть ли что-нибудь, что я могу проверить файл, чтобы выяснить, является ли архитектура 32 или 64 бит?

Или что-то еще, что я могу посмотреть на файловую систему? Ничего в /usr будет работать, потому что этот раздел теперь мертв.

  • Практическое использование uname в chroot?
  • default wordsize в UNIX / Linux
  • Можно ли установить пакет Armel Ubuntu на систему Uhuntu на анкере?
  • Легкий метод командной строки для определения конкретной строки архитектуры ARM?
  • Могу ли я определить архитектуру набора инструкций в vimrc? (ARM против x86)
  • Разница между «машинным оборудованием», «типом процессора» и «аппаратной платформой»
  • В чем разница между пакетами i686 и x86_64?
  • Значение аппаратной платформы в команде uname
  • 7 Solutions collect form web for “Определение архитектуры Linux из файлов”

    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 есть /lib/ld-linux.so.2 , то у вас есть хотя бы базовая 32-разрядная поддержка. Если есть /lib/ld-linux-x86-64.so.2 или /lib64/ld-linux-x86-64.so.2 то у вас есть хотя бы базовая 64-разрядная (amd64) поддержка. file /bin/ls расскажет вам, какие утилиты архитектуры скомпилированы (как правило, вся пользовательская среда ОС скомпилирована для одной архитектуры, возможно, с дополнительными библиотеками для другого ABI для пользовательских приложений).

    Ядро и пользовательское пространство не всегда являются одной и той же архитектурой. Ядра Amd64 могут запускать 32-разрядные пользовательские программы (но не наоборот). Если вы хотите узнать, была ли у вас 32-разрядная или 64-разрядная версия CentOS, проверьте, является ли /bin/ls 32-разрядной или 64-разрядной программой.

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

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

    Ищите каталог / lib64, если он есть и не пуст, вы, вероятно, установили 64-разрядную версию, если это не тогда 32-битный.

    Run 'strings / boot / vmlinuz- $ VERSION | grep x86-64 '. Если он возвращает что-то, то это 64. Если нет, то это 32-бит.

    Работает ли rpm / yum ? rpm -q kernel должно сказать, если это x86_64 в конце, это 64-битная настройка.

    Посмотрите в /var/cache/yum . Архитектура вашего компьютера может быть очевидна в одном из названий каталогов.

    Следующий вопрос StackOverflow может помочь. Вы можете извлечь файл .config ядра и проверить его для выбранной архитектуры: https://stackoverflow.com/questions/14958192/getting-config-from-linux-kernelimage

    Поскольку это образ ядра CentOS, он, вероятно, имеет флаг IKCONFIG. У большинства скомпилированных ядер есть.

    Linux и Unix - лучшая ОС в мире.