我已将 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/sde2
是ext2
且 安装在/boot
,并且是带有LV 的/dev/sde3
luks 分区。root
swap
答案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 扫描更多内容,但老实说我不确定。