我的系统有一个不可恢复的/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.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
。
编辑:在 OP 内核上运行文件不会返回确切的体系结构,因此答案无效。我会在我的内核上尝试一下,看看是否能得到更多信息。
答案3
查找 /lib64 目录,如果它在那里并且不为空,则您可能安装了 64 位,如果不存在则它是 32 位。
答案4
rpm
/还有效吗yum
?rpm -q kernel
应该可以看出,如果它位于x86_64
末尾,则它是 64 位设置。