我有一块带 UEFI 的技嘉主板,但无法启动并运行操作系统。不幸的是,该产品既不支持从 USB 启动,也不支持从 CDROM 启动。我在 VirtualBox 上以 UEFI 模式使用最新版本的 Ubuntu 构建了一个 SSD。我认为问题在于我不知道 EFI 启动或内核的正确路径。UEFI 引导加载程序中出现以下问题。
File path of the EFI Application or the kernel:
Is your application an OS loader? [y/n]:
Arguments to pass to the EFI Application:
Description for this new Entry:
File path of the EFI Application or the kernel:
或者,解决方案可能只是根据不同的指令集安装不同的操作系统。
有什么想法吗?
答案1
从内部硬盘以 EFI 模式启动需要将引导加载程序存储为文件用任意名称在EFI 系统分区 (ESP)在硬盘上。由于文件名不是固定的或预先确定的(有一个例外,稍后会提到),固件需要知道文件名是什么,并且该信息存储在 NVRAM 中。由于将磁盘从一台计算机移动到另一台计算机时 NVRAM 不会转移,因此使用一台计算机安装操作系统,然后尝试在另一台计算机上启动该操作系统将无法正常工作 - 或者至少,您必须完成一些额外的工作才能使其正常工作。可能的恢复方法包括:
- 将引导加载程序移动或复制到备用文件名-- 为了能够启动操作系统安装程序和应急工具,EFI 支持后备文件名,它位于
EFI/BOOT/bootx64.efi
ESP 上(对于 x86-64 系统;名称因体系结构而异)。您可以将操作系统的引导加载程序复制或移动到此名称,它可能会起作用。但是,如果引导加载程序对其配置或支持文件的路径进行硬编码,则可能会出现复杂情况。一般来说,这使得将整个目录复制到然后重命名EFI/BOOT
引导加载程序成为bootx64.efi
最安全的方法。 - 使用“从文件启动”选项临时启动-- 某些 EFI 提供一次性从文件启动的选项。您可以使用此选项启动系统,然后以其他方式将引导加载程序注册到固件。
- 使用扫描引导加载程序的引导管理器-- 一些启动管理器,比如我自己的rEFInd,在启动时扫描引导加载程序。使用 CD-R 或 USB 闪存驱动器上的此类引导管理器可以启动并运行,就像前面的选项一样。然后您需要注册常规引导加载程序(或者可能将 rEFInd 安装到硬盘上)。
- 注册引导加载程序-- 在 Linux 中,该
efibootmgr
实用程序使用 NVRAM 注册引导加载程序。在 Windows 中,您可以使用内置bcdedit
或第三方简易UEFI来完成这项工作。一些 EFI 允许您使用其自己的用户界面创建条目。如果您使用临时措施一次性启动,则可能希望以这种方式注册引导加载程序。
操作系统的引导加载程序的名称有些难以预测。大多数操作系统将其引导加载程序放在EFI
以自己命名的子目录中,例如EFI/Microsoft
Windows 或EFI/fedora
Fedora。引导加载程序的名称可以是任何名称。不过,您提到了 Ubuntu;对于它,您需要启动或注册EFI/ubuntu/shimx64.efi
(如果启用了安全启动,或者如果未启用,则可选)或EFI/ubuntu/grubx64.efi
(如果未启用安全启动)。