R S*_*ltz 4 fedora dual-boot windows grub2 uefi
虽然似乎有很多关于双引导 Windows 和 Linux 的问题,但我没有看到一个似乎涵盖这个问题的问题。也就是说,我相信很多问题都可以用类似的方式解决。
在 11/9/2014 最新补丁的 Fedora fc20 中,grub 在选择自动生成的 Windows Bootloader 条目时会出现以下两个错误。
> error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found
> error: you need to load the kernel first
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我该如何解决?
显而易见的答案是,这是因为 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
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
注意:Fedora 会在您执行更新内核等操作时自动生成一个新的配置文件,因此虽然您可以手动编辑 grub.cfg 文件,但从长远来看,编辑用于生成配置存根文件的工作较少grub.cfg 文件。
3) 将 menuentry 文本添加到 /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
}
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
注意:通过指定 /etc/grub2-efi.cfg 作为输出文件来运行此命令会删除通常存在的符号链接并创建一个新文件而不是更新实际的配置文件。
5)你完成了。重新启动后,您现在应该可以访问 Windows 和 GNU/Linux 操作系统。
归档时间: |
|
查看次数: |
9222 次 |
最近记录: |