我从源代码编译了 Linux 内核 5.18.4,启用了所有与 EFI 相关的选项,没有任何内置参数,也没有默认的 init 路径,另外,值得一提的是,我没有使用 initramfs/initrd
我正在尝试在支持 EFI 的虚拟机上通过 VirtualBox 6.1.34 启动此内核
安装盘(/dev/sda
)有两个分区:
/dev/sda1
格式化为 FAT32 的 512mb EFI 系统分区安装在/boot
/dev/sda2
格式化为 ext4 的 15.5GB 根分区安装在/
内核位于/boot/EFI/BOOT/boox64.efi
,似乎这种命名约定使其自动启动,跳过 UEFI shell,并且无需通过 来创建启动条目efibootmgr
,但我不确定这是否是不同硬件上不同 UEFI 实现的规范
每当我尝试启动它时,都会收到以下错误:
在之前的尝试中,通过进行一些小的调整,例如更改内核路径和进行其他一些调整,结果是相似的,每当我尝试vmlinuz.efi
通过 EFI shell 执行时,机器都会永远挂起,而不显示任何错误消息(这是即使在传递root=/dev/sda2
和init=/bin/init
作为参数时也是如此)