web-dev-qa-db-ja.com

FedoraとWindows 8のデュアルブートでエラーが発生する:最初にカーネルをロードする必要がある

WindowsとLinuxのデュアルブートに関しては多くの質問があるようですが、この問題をカバーしているように見える質問はありませんでした。そうは言っても、多くの問題は同様の方法で修正できると思います。

2014年11月9日の最新パッチを適用したFedora fc20では、自動生成されたWindowsブートローダーエントリを選択すると、grubにより次の2つのエラーが発生します。

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

なぜこれが起こっているのですか、どうすれば修正できますか?

4
R Schultz

明白な答えは、これはgrubがWindowsブートローダーを見つけられないために起こっていることです。あまり明白でない答えは、GRUB構成ファイルがWindowsブートローダーのルートを適切に指定していないためです。デフォルトの操作では、その行は省略されているようです。デフォルトのWindowsブートローダーを修正するのはやや複雑ですが、次の手順を実行すると、適切に機能する2つ目のブートローダーをシステムに作成させることができます。

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)menuentryテキストを/etc/grub.d/40_customファイルの最後に追加します。任意のテキストエディタを使用しますが、そうするにはrootである必要があります。私はviを使用しました。ここに示されている1234-567Aをステップ2のUUIDに置き換えてください。

[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オペレーティングシステムにアクセスできるようになります。

5
R Schultz