无法再启动到已安装的操作系统,只能从实时 USB 启动

无法再启动到已安装的操作系统,只能从实时 USB 启动

如果我尝试在未插入实时 USB 的情况下启动,它将显示ERROR: No boot disk has been detected or the disk has failed.如果我在插入 USB 的情况下进行启动并使用 UEFI 模式启动,它将显示一个 grub 菜单(但这不是我通常看到的grub菜单)

我可以使用 grub 菜单进入已经安装在硬盘上的 linux Mint(我上面提到的)命令行包含以下命令:

grub> set root=(hd1,gpt2)
grub> linux /boot/vmlinuz-5.4.0-117-generic root=/dev/sda2
grub> initrd /boot/initrd.img-5.4.0-117-generic
grub> boot

然后我将启动到 Mint,就像从 grub 条目启动它一样。

在出现此问题之前,如何恢复 Mint 的 grub 菜单并照常启动?

更多的:

我的电脑是HP Pavilion 20-a210l,支持UEFI。

我试图双启动 Fedora 36,我使用 UNetBootin 创建媒体,尝试使用dd命令,但启动媒体时它只在屏幕左上角显示闪烁的大下划线。

然后我选择自动分区,这样它将使用所有硬盘可用空间。安装完成,我重新启动,然后出现不熟悉的 grub 菜单,而不是 Mint 的 grub 菜单。

我坚信我提到的 grub 菜单来自 USB。

我也无法启动已安装的 Fedora。

正如我所说,如果我使用 UEFI 模式启动 USB,我将得到一个不熟悉的 grub 菜单。如果我使用 Legacy 模式启动到 USB,它将显示 UNetBootin 菜单,允许我启动到实时 Fedora,就像我在出现此问题之前使用 UEFI 模式启动 USB 时一样。

在出现此问题之前,我能够使用启动菜单 (F9) 或“UEFI 固件设置”grub 条目启动 USB。现在 USB 不会在启动菜单中显示为 UEFI 选项。

“ubuntu”位于启动顺序的顶部:

efibootmgr

BootCurrent: 0008
Timeout: 0 seconds
BootOrder: 0000,0002,0008,0001,0003,0007,0006,0004,0005
Boot0000* ubuntu
Boot0001* USB Floppy/CD
Boot0002* USB Hard Drive
Boot0003* ATAPI CD-ROM Drive
Boot0004* CD/DVD Drive 
Boot0005* USB Floppy/CD
Boot0006* Hard Drive
Boot0007* Realtek PXE B03 D00
Boot0008* UEFI: SanDisk

正如您所看到的,我从 SanDisk USB 拇指驱动器启动。

sudo parted -l

Model: ATA WDC WD5000AAKX-6 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_boot

Number  Start   End    Size    File system  Name                  Flags
 1      1049kB  538MB  537MB   fat32        EFI System Partition  boot, esp
 2      538MB   315GB  315GB   ext4
 3      315GB   315GB  1049kB                                     bios_grub
 4      315GB   316GB  1074MB  ext4
 5      316GB   500GB  184GB   btrfs


Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdb: 15,7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  15,7GB  15,7GB  primary  fat32        boot



我尝试过的:

  • 更新grub了,还是不行。
  • 打开网络引导,显示相同的消息,但其顶部有 PXE 错误消息。

答案1

看起来您以传统模式启动了 Fedora 安装程序,因此它将 Fedora 设置为使用 GPT 分区磁盘以传统 BIOS 风格启动。 Windows 根本不支持这种组合,因此固件开发人员对其进行的测试很差。

在系统的 BIOS 设置中,是否可以选择系统是否尝试以 UEFI 样式、传统样式或两者引导?如果不是,则该首选项可能会硬编码在固件中,并且显然您的固件当前优先考虑旧式启动而不是 UEFI。如果可以,请将引导样式设置更改为“仅 UEFI 样式”,看看是否有帮助。

(在我看来,默认情况下允许以任何一种方式启动的系统都会引发灾难,除非您意识到陷阱并在安装操作系统时小心谨慎。我通常建议选择一种启动方式并设置 BIOS 设置以允许该方式只要有可能,仅使用样式。)

如果您无法仅强制执行 UEFI 式引导,或者它没有帮助,则需要从系统磁盘中删除旧式引导设置。最简单的方法是删除pmbr_boot磁盘标志:

# parted /dev/sda
(parted) disk_set pmbr_boot off
(parted) quit

您可能还想删除分区 #3,因为它只包含 Fedora 传统模式 GRUB 的核心映像。

在最坏的情况下,您可能还需要从一开始就销毁旧式 MBR 引导代码,/dev/sda以使固件停止尝试从磁盘引导旧式sda。您只想覆盖 MBR 块的前 439 个字节,因此如果您发现需要这样做,请非常非常小心:

dd if=/dev/zero bs=439 count=1 of=/dev/sda

如果您os-prober在 Mint 中安装了该软件包,当您在 Mint 中运行时,它可能能够检测到 Fedora 安装的内核和 initramfs sudo update-grub,并自动将它们作为额外的菜单项添加到 Mint 的 GRUB 菜单中。这将是让 Fedora 真正以 UEFI 模式启动的一种可能方法。然后您可以确保也/dev/sda1像在 Fedora 中一样安装/boot/efi,然后重新安装 Fedora 的 UEFI GRUB /boot/efi/EFI/fedoragrub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda从 Fedora 安装执行时应该自动执行)。然后您可以用来efibootmgr决定哪个 GRUB 将是您的主引导菜单:Mint 的 GRUB 或 Fedora 的 GRUB。

相关内容