Fedora
雙啟動 Fedora 和 Windows 8 報錯:你需要先載入核心
雖然似乎有很多關於雙引導 Windows 和 Linux 的問題,但我沒有看到一個似乎涵蓋了這個問題的問題。也就是說,我相信很多問題可能會以類似的方式解決。
在 2014 年 11 月 9 日最新更新檔的 Fedora fc20 中,當選擇自動生成的 Windows 引導載入程序條目時,grub 會出現以下兩個錯誤。
> error: file '/EFI/Microsoft/Boot/bootmgfw.efi' not found > error: you need to load the kernel first
為什麼會發生這種情況,我該如何解決?
顯而易見的答案是,這是因為 grub 找不到 Windows 引導載入程序。不太明顯的答案是因為 grub 配置文件沒有正確指定 Windows 引導載入程序的根目錄。預設操作似乎忽略了該行。雖然修復預設的 Windows 引導載入程序會有些複雜,但以下說明將允許您讓系統創建第二個正常工作的引導載入程序。
如果您使用 Fedora fc20 或其他類似配置的執行 grub2 的系統,只要您沒有損壞 Windows 引導載入程序分區,以下步驟應該可以解決您的問題。
- 找出您的 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 文件。
- 將 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 }
- 現在使用 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 指定為輸出文件來執行此命令會刪除通常存在的符號連結並創建一個新文件,而不是更新實際的配置文件。
- 你完成了。當您重新啟動時,您現在應該可以訪問您的 Windows 和 GNU/Linux 作業系統了。