双启动 Fedora 和 Windows 8 出现错误:您需要先加载内核

双启动 Fedora 和 Windows 8 出现错误:您需要先加载内核

虽然似乎有很多关于双启动 Windows 和 Linux 的问题,但我没有看到一个似乎涵盖了这个问题的问题。也就是说,我相信很多问题都可以通过类似的方式解决。

在截至 2014 年 11 月 9 日发布最新补丁的 Fedora fc20 中,grub 在选择自动生成的 Windows Bootloader 条目时出现以下两个错误。

> error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found 
> error: you need to load the kernel first

为什么会发生这种情况以及如何解决它?

答案1

显而易见的答案是发生这种情况是因为 grub 无法找到 Windows 引导加载程序。不太明显的答案是因为 grub 配置文件没有正确指定 Windows 引导加载程序的根目录。默认操作似乎忽略了该行。虽然修复默认的 Windows 引导加载程序会有些复杂,但以下说明将允许您让系统创建第二个可以正常工作的引导加载程序。

如果您使用的是 Fedora fc20 或其他运行 grub2 的类似配置的系统,只要您没有损坏 Windows 引导加载程序分区,以下步骤应该可以解决您的问题。

1) 找出您的 Windows 引导加载程序位于哪个分区。

[root@localhost]# fdisk -l

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D733242D3-33B9-4C33-B33F-2C333DC52333

Device           Start          End   Size Type
/dev/sda1         2048       206847   100M EFI System
/dev/sda2       206848      2050047   900M Windows recovery environment
/dev/sda3      2050048      2312191   128M Microsoft reserved
/dev/sda4      2312192    988518399 470.3G Microsoft basic data
/dev/sda5   1911560192   1953523711    20G Windows recovery environment
/dev/sda6    988518400    989337599   400M EFI System
/dev/sda7    989337600    991385599  1000M Microsoft basic data
/dev/sda8    991385600   1911560191 438.8G Linux LVM

Disk /dev/mapper/fedora-swap: 7.8 GiB, 8396996608 bytes, 16400384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/fedora-root: 431 GiB, 462728200192 bytes, 903766016 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

2) 找出该分区的UUID。

[root@localhost]# blkid /dev/sda1
/dev/sda1: LABEL="SYSTEM" UUID="1234-567A" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="0c33e3ab-d3dc-3af3-333d-a33eee3c333c"

注意:当您执行更新内核等操作时,Fedora 会自动生成新的配置文件,因此虽然您可以手动编辑 grub.cfg 文件,但从长远来看,编辑用于生成新配置文件的配置存根文件的工作量较少。 grub.cfg 文件。

3) 将菜单项文本添加到 /etc/grub.d/40_custom 文件的末尾。使用您选择的文本编辑器,但您必须是 root 才能执行此操作。我用的是vi。确保将步骤 2 中的 UUID 替换为此处显示的 1234-567A。

[root@localhost]# vi /etc/grub.d/40_custom

menuentry 'My Working Windows Bootloader' {
    search --no-floppy --fs-uuid --set=root '1234-567A'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
    boot
}

4) 现在使用 grub2-mkconfig 命令生成实际的配置文件。

[root@localhost]# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.16.7-200.fc20.x86_64
Found initrd image: /boot/initramfs-3.16.7-200.fc20.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-0b156afaadc545779646d809437ed977
Found initrd image: /boot/initramfs-0-rescue-0b156afaadc545779646d809437ed977.img
Found Windows Boot Manager on Microsoft/Boot/bootmgfw.efi
done

注意:通过指定 /etc/grub2-efi.cfg 作为输出文件来运行此命令会删除通常存在的符号链接并创建一个新文件,而不是更新实际的配置文件。

5)你完成了。重新启动后,您现在应该可以访问 Windows 和 GNU/Linux 操作系统。

答案2

请找到以下与您的计算机启动相关的问题的解决方案:

  1. 首先,打开超级按钮栏。要打开超级按钮栏,请同时按 Windows Key+ C
  2. 超级按钮栏将显示在屏幕的右上角。
  3. 现在单击“设置”图标,然后单击“更改电脑设置”->“更新和恢复”->“恢复”。
  4. 单击“开始”链接启动该过程。

更详细的信息在这篇文章中,标题为:Windows 8 启动错误 bcd

相关内容