最近,一些發行版開始將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