我有一个系统,我想从 NVMe 磁盘启动(通过 PCIe 转接卡)。该系统支持 UEFI,我可以从 USB 磁盘启动并将操作系统(TrueNAS Scale)安装到 NVMe 磁盘,并且操作系统显示在 UEFI 启动选项中。然而,当尝试从 UEFI 选项启动时,它失败了(只是让我进入 BIOS 屏幕)。
这似乎是由于 BIOS 不支持从 NVMe 磁盘启动。这在某种程度上是有道理的,因为我使用 PCIe 转接卡来添加 NVMe 磁盘。
当我用谷歌搜索这个主题时,有很多提到 rEFInd 和“DUET”的内容。然而我找不到关于这个“DUET”的任何信息。我能找到的链接都指向一个死仓库。
如何让系统从 NVMe 启动?
答案1
我能够使用 vanilla rEFInd 来实现此功能,并为其提供 NVMe 驱动程序。我安装到 USB 设备,因为这是一个对系统透明的非侵入式选项。由于 TrueNAS 正在管理启动磁盘,因此我不想干扰它。
rEFInd 将从 USB 启动,然后从 NVMe 磁盘链接加载 grub。
rEFInd 确实提供了一个可以写入 USB 设备的 ISO,但该文件系统包含的可用空间非常少,并且该fatresize
工具无法调整其大小(声称它是 FAT12 文件系统)。所以你必须使用安装程序工具。
- 下载 rEFInd,“二进制 zip 文件”选项。
- 使用
gdisk
(或其他分区工具)对USB设备进行分区,将分区类型设置为EF00
. - 我使用 进行格式化
mkfs.vfat
,但我不确定是否需要此步骤。 - 跑步
refind-install --usedefault /dev/name_of_usb_partition
。 (例如/dev/sdz1
) - 安装 USB 设备。
- 跑步
mkdir /path_to_usb/EFI/BOOT/drivers_x64
- 下载三叶草。 (我特意选择了这个驱动作为rEFInd作者提到它有效)
efi/clover/drivers/off/nvmexpressdxe.efi
从 Clover复制到/path_to_usb/EFI/BOOT/drivers_x64/
.- 卸载一切。
就是这样。 rEFInd 将自动使用驱动程序,然后扫描可用的启动选项,并在 20 秒后自动启动。您可以按照 rEFInd 文档来配置行为。