我已经从源代码编译了 Linux 内核 5.18.4,启用了所有与 EFI 相关的选项,没有任何内置参数,也没有默认的 init 路径,此外,值得一提的是,我没有使用 initramfs/initrd
我正在尝试在支持 EFI 的 VM 上通过 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
作为参数时也是如此)