如果我尝试在未插入实时 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/fedora
(grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda
从 Fedora 安装执行时应该自动执行)。然后您可以用来efibootmgr
决定哪个 GRUB 将是您的主引导菜单:Mint 的 GRUB 或 Fedora 的 GRUB。