此 GPT 分区标签不包含 BIOS 启动分区

此 GPT 分区标签不包含 BIOS 启动分区

我的笔记本电脑已经变砖了,我已经走进了死胡同。昨天,在风扇疯狂增加和台式机反应迟钝之后,笔记本电脑无法再次正常启动; dpkg 不会修复任何内容,在变砖的笔记本电脑提供的命令行中键入时也不会被识别。即使在安全模式下启动也是不可能的,因为显示屏开始出现故障。

我运行实时介质来尝试使用引导加载程序重新安装引导方法,因为这似乎是原因。我成功运行了它,但我仍然无法访问 Linux Mint,因为它没有 grub。

问题是我正在遵循此链接中的过程阿库本图但我不能,因为我没有 /mnt/boot/efi 文件夹(我假设我之前没有 grub?)

这是我的分区表 在此输入图像描述

在此输入图像描述

编辑:成功运行答案中提供的所有命令后,这是结果,无需按任何内容并在启动时按原样启动机器

在此输入图像描述 我在通过 UEFI 启动时遇到此问题,与以前一样,出现故障并且无法选择 dpkg 或其他任何内容。

在此输入图像描述

解决方案:我找到了罪魁祸首,我用损坏的 samba 共享链接修改了 FSTAB 配置,一切都得到了支持。

答案1

“此 GPT 分区标签不包含 BIOS 启动分区”消息表明您可能已经以传统 BIOS 方式启动了实时媒体,因此,您最终会尝试将 BIOS 版本的 GRUB 安装到 GPT 分区上磁盘。

/dev/sda2似乎是您的 EFI 系统分区 (ESP),它应该安装到/mnt/boot/efi.由于 ESP 存在于您的磁盘上,因此表明您的系统之前以本机 UEFI 方式启动。

/dev/sda3是一个交换分区。

其余三个分区、sda1sda4均为sda5ext4其中之一是您的根文件系统。另一个可能是单独的/boot文件系统。剩下的那一张里面是什么?

首先,您需要使用与您尝试修复的系统相同的启动方式(BIOS 或 UEFI)来启动恢复实时媒体;默认情况下,GRUB 安装程序会根据系统当前的引导方式自动检测要安装的引导加载程序类型。安装 UEFI 版本的 GRUB 需要访问 UEFI NVRAM 变量,这些变量只有在系统以本机 UEFI 模式启动时才可用。

您可以通过运行来验证当前的启动模式sudo efibootmgr -v:如果它输出启动设置列表,则系统将以 UEFI 本机模式启动。如果它显示错误消息“此系统不支持 EFI 变量”,则您很可能以旧版 BIOS 兼容模式启动系统。

如果您的安装有/boot一个单独的文件系统,则需要三个步骤:

  1. 将根文件系统挂载到/mnt实时介质中。之后,/mnt/boot现在应该存在(除其他外)。
  2. 将文件系统挂载/boot/mnt/boot实时介质中。之后,/mnt/boot/efi目录/mnt/boot/grub现在应该存在。
  3. 将 ESP 安装到/mnt/boot/efi实时介质中。之后,现在应该存在类似的目录路径/mnt/boot/efi/EFI/ubuntu,假设之前安装 Ubuntu 的 UEFI GRUB 的痕迹仍然存在。是的,.../efi/EFI/...目录结构中有是正常的。而且由于 ESP 是 FAT32 文件系统,其设计不区分大小写,因此其下的目录和文件名称的大小写/mnt/boot/efi可能会有所不同。

完成后,您可以继续执行其余步骤:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub  

答案2

我刚刚在配置为 EFI 启动模式(不是 BIOS/legacy/CSM)的 Ubuntu Server 18.04 上恰好遇到了这个问题。引导顺利后,它开始持续引导至 GRUB shell。从 GRUB shell 手动启动操作系统并运行

# update-grub

然后尝试重新安装 GRUB 失败。

显然,问题在于系统上没有安装 EFI 版本的 GRUB (grub-efi),但 BIOS 版本 (grub-pc) 却安装了。解决这个问题所需要做的就是:

# apt install grub-efi
# update-grub
# grub-install

线索是,update-grub 事先坚持使用设备规范,当它得到一个设备规范时抛出上述错误。但是,update-grub 命令不采用 EFI 系统上的设备规范。

相关内容