UEFI 无法在没有 nvram 条目的情况下引导外部 USB 上的 Debian 安装

UEFI 无法在没有 nvram 条目的情况下引导外部 USB 上的 Debian 安装

我已将 Debian Stretch 安装到外部 USB 驱动器上,计划将其用作可在多台计算机上使用的便携式安装,因此我需要能够直接从 USB 启动它,而无需在 UEFI 中创建 nvram 条目。问题是,UEFI 未将驱动器视为可启动(它不会出现在启动菜单或启动设置中)。

我在专家模式下运行 Debian 安装程序并选择将 grub 安装到后备位置,我已通过 nvram 启动系统并尝试使用以下命令手动安装 grub

grub-install --efi-directory=/boot/efi --boot-directory=/boot --removable /dev/sde 

我已经安装了 refind 并使用--usedefault.我已经确认它/boot/efi/EFI/BOOT/BOOTX64.efi存在,但 UEFI 仍然没有将 USB 驱动器列为我尝试过的两台不同机器上的启动选项。

通过启动nvram工作正常,但我需要能够直接从 USB 启动,而不依赖nvram主板上的条目。

有谁知道可能出了什么问题吗?这是输出fdisk -l

Disk /dev/sde: 59.8 GiB, 64160400896 bytes, 125313283 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 831C76FD-DE61-4D79-93F5-0DA1C5EE5978

Device       Start       End   Sectors  Size Type
/dev/sde1     2048   1050623   1048576  512M EFI System
/dev/sde2  1050624   1550335    499712  244M Linux filesystem
/dev/sde3  1550336 125313023 123762688   59G Linux filesystem

然后分开了:

(parted) print                                                            
Model: Samsung Flash Drive (scsi)
Disk /dev/sde: 64.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  538MB   537MB   fat32              boot, esp
 2      538MB   794MB   256MB   ext2
 3      794MB   64.2GB  63.4GB

/dev/sde1/boot/efi是 ESP、fat32,并使用标志安装esp, boot/dev/sde2ext2且 安装在/boot,并且是带有LV 的/dev/sde3luks 分区。rootswap

答案1

nvram 条目包括根分区用于存放 grubs 系统文件的位置。如果直接启动设备,则 UEFI 告诉 grub 根目录与 EFI 系统相同,通常是 Linux 系统分区 /boot 目录。最简单的解决方案是将 grub 安装到 efi 系统分区。

grub-install --efi-directory=/boot/efi --boot-directory=/boot/efi --removable /dev/sde

答案2

我能够解决这个问题,但我不太明白为什么我所做的事情有效。我最终grub-install再次运行而没有通过--efi-directory并且--boot-directory(所以命令最终是grub-install --removable --verbose)。然后,我删除了 nvram 条目并重新启动一次,但未检测到驱动器,但在另一次重新启动后,它显示在启动列表中并且可以启动。

我在另一台计算机上经历了相同的过程(删除了现有的 nvram 条目并重新启动),并且在以前没有检测到驱动器时​​也在那里检测到了驱动器。看起来有时可能需要清除 nvram 条目才能让 UEFI 扫描更多内容,但老实说我不确定。

相关内容