事实证明,我的笔记本电脑有一个错误,BIOS 固件让软件在后备目录中寻找启动文件,而 GRUB 没有安装它,Linux 崩溃告诉我grub-install
失败了。
有没有办法强制实时 USB 安装将 GRUB 安装到其后备或辅助安装位置,以便软件和计算机都能找到它?
我正在寻找一种方法来将实时 USB 安装安装到其后备或辅助选项,以便计算机可以强制软件在那里查找,但安装到那里后不会触发严重故障并停止安装。
我尝试过安装,让它失败,然后手动安装 GRUB,但是因为我不知道后备位置在哪里我遇到了与 Linux 相同的问题,并且不知道grub-install
.
答案1
你所说的事实启动文件表示您拥有 UEFI 系统并且不使用旧版 BIOS 兼容性。
后备/辅助启动文件路径名在 UEFI 规范中定义,并且是特定于体系结构的。对于 64 位 x86 硬件架构(= 典型的现代 PC),该位置可以定义为\EFI\boot\bootx64.efi
FAT32 文件系统(或者对于较新的 UEFI 版本,除 exFAT 之外的任何 FAT 文件系统类型)。在其他架构上,该x64
部分被相应架构的短标识符替换。路径名应该不区分大小写,但已知某些 UEFI 固件实现在此处错误地区分大小写。
安装 UEFI 版本的 GRUB 时,给出grub-install
该选项--removable
会将引导加载程序安装在后备/辅助位置。或者,使用该--force-extra-removable
选项将尝试安装它两个都到已安装操作系统的标准位置,和后备/次要位置。某些发行版的安装程序在其引导加载程序设置菜单中包含这些选项的复选框(通常位于“高级”部分)。
但是,如果您选择的发行版未能提供此选项,Linux 安装程序几乎普遍提供命令提示符访问。如果您已从安装介质启动,则其中之一Linux 虚拟控制台一旦您在安装 UI 中进行了初始键盘/语言选择,几乎都会有可用的 root 命令提示符。您可以使用Ctrl+ Alt+功能键击在虚拟控制台之间切换Fx:通常安装程序 UI 将打开F1,其他功能键提供对根提示符和各种安装程序诊断的访问。如果您使用包含完整桌面界面的实时 Linux 介质开始安装,则在大多数桌面环境中打开命令提示符窗口应该非常简单。
在 UEFI 系统上,应该有一个 EFI 系统分区(简称 ESP):它是一个小型(通常小于 512MB)分区,用于存储任何和所有已安装操作系统的引导加载程序文件。
在 Linux 上,此分区通常安装在/boot/efi
,因此可以在 处看到后备/辅助引导加载程序/boot/efi/EFI/boot/bootx64.efi
,并且已安装的 Linux 系统的主引导加载程序路径的形式为/boot/efi/EFI/<name of Linux distribution>/*.efi
。
但是,某些发行版可能会正常卸载 ESP,仅在实际更新引导加载程序的过程中才安装它。
UEFI 式引导加载程序安装的最后一步是编写UEFI NVRAM 启动变量这将告诉固件已安装操作系统的引导加载程序的确切位置(每个已安装操作系统一个变量)。这是全新的东西,在传统 BIOS 中没有对应的东西:不幸的是,硬件制造商似乎经常尝试使 UEFI 尽可能像传统 BIOS 一样,因此,UEFI 固件配置菜单(“BIOS 设置”)经常没有好的工具来操作这些启动变量。
在Linux中,可以使用efibootmgr
命令最方便地查看和编辑UEFI启动变量。如果它报告类似“UEFI 变量在此系统上不可用”的错误,则可能表明您意外地在旧版 BIOS 兼容模式下启动了安装介质:在此模式下,固件和正在运行的操作系统之间的必要 API (称为 UEFI 运行时服务)只有在系统以 UEFI 本机模式启动后才可用。