最近,一些发行版开始将vmlinuz文件与initrd一起打包到“ELF-Boot”想象中,这可以说有一定的优势。那么,我需要使用vmlinuz文件的旧格式编译新内核。有谁知道我怎么能做到这一点?我正在使用Oracle Enterprise Linux,如果我运行“make bzImage”,则结果是我不能使用的ELF文件。将Linux内核编译为非ELF
另外,有没有办法解压缩ELF启动镜像和提取传统的vmlinuz文件?
为了澄清,我现在拿到的时候我做了一个 “文件的/ boot/vmlinuz的” 是:
的vmlinuz:ELF 64位LSB的共享对象,AMD的x86-64,版本1,剥离
但是,我想获得的是类似于:
vmlinuz:Linux/x86内核,安装程序版本0x20a,bzImage,版本2.6.37,版本2.6.37-40,RO-rootFS,root_dev 0x301,swap_dev 0x4,普通VGA
感谢您的帮助!
我使用clusterworx来管理群集节点。对于要与clusterworx一起使用的映像,当执行“file vmlinuz”时,应该得到如下所示的内容:“vmlinuz:Linux/x86内核,安装程序版本0x20a,bzImage,版本2.6.37,版本2.6.37-40,RO-rootFS ,root_dev 0x301,swap_dev 0x4,Normal VGA“,但我得到的是:”vmlinuz:ELF 64位LSB共享对象,AMD x86-64,版本1,剥离“。 – Trixl 2011-02-26 16:24:43
那么,在编译内核之后,内核映像不是您最终获得的内核源代码目录中的vmlinuz文件。这是文件arch/$ {YOUR_ARCHITECTURE}/boot/bzImage – datenwolf 2011-02-26 17:18:48
不幸的是,我可以在源代码树(vmlinuz,bzImage等)中找到的所有候选文件文件都报告为ELF ... – Trixl 2011-02-27 10:31:05