从文件确定 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 位设置。

相关内容