我有一台使用 UEFI 和内核 efi-stub 启动 Debian 的计算机。ESP 分区位于第一个磁盘 ( /dev/sda1
)
为了了解 UEFI 启动和 Linux 启动的详细信息,我创建了一个 USB Linux 映像。我在 USB 上创建了一个带有 esp 标志的 vfat 分区,其布局如下:
EFI\
|
+ BOOT\
|
+ BOOTX64.EFI
|
+ STARTUP.NSH
|
+ INITRD.IMG
|
+ VMLINUZ.EFI
startup.nsh的内容为:
vmlinuz.efi ro root=UUID=<uuid> rootfstype=ext3 add_efi_memmap initrd=initrd.img console=tty0
问题是,当我从 USB 启动时,系统initrd=initrd.img
会加载 Debian 安装文件,/dev/sda1
而不是 USB 上的文件。我猜测这是因为 Debian 磁盘显示为,fs0:
而 USB 则显示为fs1:
UEFI shell。
我的问题是如何确保 uefi shell/内核加载vmlinuz
并且initrd
仅从读取 startup.nsh 的同一设备加载?