我使用 buildroot 来编译 Linux 内核映像,并将根文件系统嵌入为 initramfs。但是当我启动它时,我看到 grub 选择了条目,然后我在屏幕的左上角看到了一个固定的光标,没有其他东西。我使用下面的 Grub 配置从 EFI 引导分区加载内核。这是加载带有嵌入式 initramfs 的内核的正确方法吗?或者我该如何调试它?
menuentry "linux" {
linux /bzImage console=/dev/tty1
}
答案1
这是正确的,-(迟来的编辑:除了console=/dev/tty1
其中不应该包含的内容/dev/
)-并且您也可以嵌入内核参数,因此它减少为仅linux thefile
.我在 Gentoo 安装中使用了这种风格,并带有内置的自定义 initramfs - 但我仍然将可选的微代码作为专用文件传递。效果很好。
menuentry "Default Linux" {
linux "/bzImage-default"
initrd "/early-microcode.img"
}
如何调试,在对硬件、内核配置和用例一无所知的情况下很难回答。通常它缺少驱动程序或模块化驱动程序,并且无法实际加载模块,因此启用更多功能并重新编译。
如果其他方法都不起作用,您还可以尝试在虚拟机中启动它,看看它是否比裸机更好,并且使用虚拟机您可以检查串行控制台、CPU 活动、I/O 和 RAM 状态。