构建内核后找不到 vmlinuz 和 initrd?

构建内核后找不到 vmlinuz 和 initrd?

使用 make 配置和构建内核后,为什么我没有vmlinuz-<version>-default.imginitrd-<version>.img,但只有一个巨大的vmlinux二进制文件(~150MB)?

答案1

压缩后的图像位于 下方arch/xxx/boot/,其中xxx是拱门。例如,对于x86amd64,我在 处获得了压缩图像/usr/src/linux/arch/x86/boot/bzImage,以及/usr/src/linux/vmlinux

如果您仍然没有图像,请检查是否bzip2已安装并正常工作(但我想如果这就是问题所在,您会收到一条描述性错误消息,例如“未找到 bzip2”)。

此外,内核配置允许您选择压缩方法,因此如果更改内核设置,实际文件名和压缩算法可能会有所不同。

正如其他人已经提到的,initrds 是不是由linux编译过程生成,但也可以由其他工具生成。请注意,除非出于某种原因,您需要外部文件(例如,您需要模块或 udev 来识别或挂载/),否则您不需要 initrd 来引导。

答案2

根据文档:

http://tldp.org/LDP/lame/LAME/linux-admin-made-easy/kernel-custom.html

当你这样做时:

制作 bzImage

进而:

cp bzImage vmlinuz

创建 vmlinuz 文件。即,它们是相同的文件:-)。

相关内容