我正在寻找一个文件列表(可以在死盒系统上查看,即它们必须是文件系统工件),其中包含有关系统正在运行的内核版本的信息。
我的用例是,我正在分析一堆嵌入式 Linux 固件映像,并且我想提取内核版本。
令人惊讶的是,查找此类工件的信息非常困难 - 大多数在线资源列出了您可以运行的各种命令(uname -r、hostnamectl 等),但没有列出该数据点可能存在的静态文件。 /proc/version 似乎是一个位置,但不幸的是 /proc 目录似乎不存在于我迄今为止查看的任何图像中。
本质上,我正在寻找 Linux 系统上可能存在内核版本信息的所有文件的列表。任何帮助,将不胜感激!
答案1
如果您可以确定数据中的哪个文件包含所使用的内核,则可以从中提取版本。在某些情况下,file
可以提取版本:
file /boot/vmlinuz-4.19.0-16-amd64
/boot/vmlinuz-4.19.0-16-amd64: Linux kernel x86 boot executable bzImage, version 4.19.0-16-amd64 ([email protected]) #1 SMP Debian 4.19.181-1 (2021-03-19), RO-rootFS, swap_dev 0x5, Normal VGA
在其他情况下,您需要自己查找版本:
$ grep -a "Linux version" /boot/pine64/Image
Linux version 3.10.105 (debian@pine64) (gcc version 4.9.2 (Debian/Linaro 4.9.2-10) ) #1 SMP PREEMPT Sun Aug 20 17:02:37 CEST 2017
这是您可以在惰性文件系统上使用的最可靠的工件。
答案2
在死箱系统上...不幸的是 /proc 目录似乎不存在
当然它不会存在。 /proc 目录在运行时由 runnung 内核填充到 RAM 中。因此,只需找到内核映像并直接使用命令file
、或使用strings
或其他任何命令对其进行检查即可。查看该磁盘上是否有 /boot 目录 - 您可能会在那里找到内核。
编辑:哎呀!没有注意到斯蒂芬·基特已经回答了这个问题。 :-)