无法启动自定义内核

无法启动自定义内核

我使用的是ubuntu 11.04

我有一个自定义的 2.6.36.4 内核源代码(如linux_src

Didmake mrproper 将我当前的配置复制到/bootDid linux_src/.config a make menuconfig,指示它加载配置文件.config。在一般设置中,我将字符串添加rr到内核版本号中。退出配置。

做了一个make && make modules_install && make install超级用户。这在 /boot 中创建了 vmlinuz-2.6.36.4rr 映像; /lib/modules 中的相应目录。 System.map 在 /boot 中,但不在 initrd 映像中

所以我运行了以下命令:

cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr

最后我跑了sudo update-grub。 Grub 找到了我的新 linux 映像和新的 initrd 映像。

启动时,新安装的内核列在我的启动选项中。我选择了它,然后屏幕一片空白(但不是黑色的,它只是显示了一些默认的 ubuntu 主题彩色空白屏幕)并卡在那里。

我怀疑 makeinitramfs 进程是罪魁祸首。

另一方面,当我使用安装了相同的内核make-kpkg并且dpkg我不必做任何其他事情(甚至 initramfs)并且内核已完美启动(我想用这种方法安装内核)。

请帮忙。

编辑:我取得了一些进展

而不是使用:

cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr 我用了 cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr 2.6.36.4rr

我相信这是使用 mkinitramfs 的正确方法。

但是,现在我的启动过程以“放弃等待根设备”和 initramfs 提示结束

答案1

阅读您的描述,我发现您在配置阶段没有做一件重要的事情:make oldconfig在复制文件之后.config,但在执行之前make menuconfig(顺便说一句,如果配置保存.config在源目录中的文件中,则不需要显式加载它- 这是默认完成的)。当新的内核版本与原来的内核版本至少有一点不同时,在所有情况下都需要这样做.config

我不确定你的 initramfs 创建方法 - 我曾经使用过的唯一一种是genkernel.但要确定 initramfs 是否是罪魁祸首,您只需修改 grub 条目以指向旧的 initramfs 文件(当前系统使用的文件)即可。另外,当系统启动时,您通常可以按F1查看启动消息(可能需要quiet先从启动加载程序菜单项中删除)。

编辑: 只是想一想:您的 grub 菜单项可能有问题(在/boot/grub/grub.cfg或中找到/boot/grub/grub.conf) - 比较新旧菜单项,也许内核参数是错误的(例如错误real_root)。简单来说,除了内核位置和 initrd 之外,后面的行kernel应该相同。

相关内容