Fedora Linuxにgrub-efiブートローダーを再インストールするにはどうすればよいですか?


12

最近、EFIブートを使用してFedora 18をインストールしました。他の現在のLinuxディストリビューションと同様、GRUB2をセットアップします。

不具合が発生した場合、GRUB のBIOSバージョンを再インストールした経験があります。たとえば、レスキューディスクを起動する方法、インストールしたシステムにchrootする方法、実行する方法grub-install、そしておそらくupdate-grub/ grubby/ を知っていますgrub-mkconfig

問題が発生した場合、GRUB のEFIバージョンを再インストールするにはどうすればよいですか?(私は物事がうまくいかないことを知っています:私はそれらを壊します)。


あいまいな質問をして、すぐに答えたのはなぜですか?答えは有用な情報を提供しますが、質問は本当に解明する必要があります。あなたが何かを変えたことを知るだけでは十分ではありません。変更された内容を正確に理解することは、質問に適切に応答するために本当に必要です。
ロッドスミス

@ RodSmith、EFIについての私のメールへの返信ありがとうございます。そして、ダウン投票にコメントを追加します。私が始めた質問は文字通りこれでした。grub-pcの再インストールの経験があります。EFIシステムを回復する方法を知っているという同じレベルの自信を持ちたいです。質問を一度編集して、grubの再インストールに関するものであることを強調しました...もう一度やり直して、動機についてより明確にする必要があると思います。
sourcejedi

UEFIを持っているのになぜgrubを使用しているのですか?2つのブートローダーをチェーン化すると、どのような利点がありますか?
マルコ

@Marco UEFIは、私が知っているどのLinuxディストリビューションでもサポートされているブートローダーではありません。Fedoraは、新しいカーネルをインストールするときにGRUBを自動的に更新し、root =などの必要なブートオプションをインストールします。EFIの場合はそうしません。私は可能性が流通支援&使用放棄refind.conf中のw /カーネルオプションREFind関数の自動スキャンを、それはまだブートローダー/マネジャーを連鎖されるだろう!また、MicrosoftはGPLドライバーに署名しないため、セキュアブート SHIM->ブートローダー-> Linuxに移動する必要があり、UEFI-> SHIM部分の後にブートメニューが必要です。
sourcejedi

新しいカーネルをインストールした後efibootmgr、UEFIメニューのエントリを更新するには、1回の呼び出しで十分です。rEFIndやSHIMについては知りません。私は個人的に複数のブートローダーを連鎖させません。すべてのオペレーティングシステムがUEFIブートメニューに追加され、正常に機能しています。
マルコ

回答:


9

まず、EFIで起動される Linuxシステムが必要です。元のインストールメディア(CD / DVD / USBスティック)がまだある場合は、通常、適切なレスキューシステムを含める必要があります。ワンクリックの修復オプションもあります:)。

または、Ubuntuコミュニティは、自動ブート修復イメージを提供します。Fedoraをサポートすると主張しています。実際に何をするのか知りたい場合は、事前にこのサードパーティの説明を読むことをお勧めします。

ただし、コンソールツールを備えた汎用レスキューシステムを使用しました。EFIブートをサポートするだけでなくefibootmgr、パッケージのリストに含まれていることを確認しました。たまたまGRMLと呼ばれ、Debianに基づいていました。以下は、Fedoraシステムのレスキュー中に発見したコンソールツールとgrub-efiに関する情報です。

  1. EFIで起動したFedora 18システムを実行しているときは、実行しないでくださいgrub2-install。成功を主張しますが、Fedora grub-efiブートシステムを破壊します。

    • ファイル/boot/EFI/fedora/grub.efiはgrub-efiパッケージによってインストールされます。あなたがいる場合、それを再インストールする、使用yum reinstall grub-efi。(一般的なレスキューシステムからこれを行うには、後にこれを行うことができますmountINGのとchroot、インストールしたFedoraシステムにする)。Fedora grub-efiは設定ファイル/boot/EFI/fedora/grub.cfg(おそらくgrubby によって生成される)を使用します。EFI上のFedoraはでファイルを生成しません/boot/grub2/grub.cfg。実行grub2-installすると、grub.efiが読み取りを試みるイメージに置き換えられる/boot/grub2/grub.cfgため、失敗します。

    • grub2-installのEFIブートエントリをインストールしますgrub.efi。ただし、Windows 8認定ファームウェアでセキュアブートを無効にしていない場合、このエントリは起動に失敗します。shim.efi代わりに起動する必要があります(無視してくださいshim-fedora.efi、それが何であるか正確にはわかりません)。下記参照。

  2. ファームウェア設定がリセットされると、FedoraのEFIブートエントリが失われる可能性があります。(手動で、またはファームウェアのアップグレードにより、またはファームウェアにバグがあるため-後者は実際に報告されています)。セキュアブートを使用してFedoraのEFIブートエントリを手動で作成する方法は次のとおりです。

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    この例では、Linuxが認識する最初の標準ディスクのパーティション番号100を使用します。オプション-d /dev/sdaを調整し、-p 100Fedoraがでマウントするファイルシステムを識別する必要があります/boot/efi。これはEFIシステムパーティションです。Fedoraインストーラーは、他のオペレーティングシステムで使用されるESPとは別に、使用するFedoraインストール専用の ESPを作成します。(これはUbuntuやOpenSUSEとは異なります)。

    このefibootmgrコマンドを使用するには、EFIでブートされたシステムから実行する必要があります。


「efibootmgrコマンドを使用するには、EFIブートシステムから実行する必要があります。」-この場合、EFIでブートされたシステムをどのように「ブートストラップ」しますか?(UEFIオプションを選択すると、現在のUSBは起動しません)
-jozxyqk

1
インストールメディアは、システムをブートストラップするためのサポートされている方法です。EFIファームウェア変数をインストールせずにEFIシステムを起動することもできるはずだと思います/EFI/boot/bootx64.efi(64ビットUEFIを想定)。これは、まさにUSBインストールメディアの動作(CD / DVD以外)です。shim.efiをそこにコピーするだけで十分かもしれませんが、それが機能するように設定されているかどうかはわかりません。
sourcejedi

5

UEFI Windowsでデュアルブートしている場合、別の可能性があります。リカバリディスクは必要ありません。

Windowsを起動し、管理者権限でコマンドラインを開き、次のコマンドを実行できます。

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

これにより、UEFIのWindowsブートエントリがGRUBでブートするエントリに置き換えられます。GRUBメニューにWindows用の有効なエントリが含まれていると仮定すると、デュアルブートが機能するようになりました:-)。セキュアブートを無効にせずに、これがすべて機能することを願っています。

私はWindowsの更新後に自分でそうしなければならなかったので、トリックを行ったようです。

ソースとより多くの情報:http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/


または、askubuntu.com / a / 799734/462004で説明されている2つのソリューションを参照してください(EasyUEFIを使用するかbcdedit.exe、コマンドのようにWindowsエントリの代わりにブート順序を変更する方法)。
phk

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems

dnf reinstall grub2-efi grub2-efi-modules shim

(これらのパッケージが既にインストールされており、以前の構成が存在すると仮定します)


ありがとう!「ブートメニューエントリを作成する:TL; DR:これは自動的に行われるはずです」-はい。
sourcejedi 16

いやああ、それはありません:grub2-mkconfig -o /boot/grub2/grub.cfg(または(U)EFIシステム上で、それはようなものになるだろうgrub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfgしなかった作品。?

申し訳ありませんが、grubパッケージを再インストールすると、GRUBを起動するために必要なEFI変数が再作成されることをwikiが意味します(何らかの理由で「BIOS」設定をリセットした場合など、再作成が必要になる場合があります)。私は試したとは思わないdnf reinstall、そして本当ならそれはかなり素晴らしい音に聞こえる。
sourcejedi 16

0

ここで簡単にするために、あなたがすることはすべてです:

yum reinstall grub2-efi

grub2-installを実行しないでください。空のgrubブートメニューが表示され、システムが破損します(これは、grub2-installが間違った場所からgrub.cfgをロードしようとするbad / generic .efiファイルを提供するためです。

さらに、新しいディスクに移行した場合、またはパーティション/レイアウトが次のように変更された場合、grub-configを更新することもできます。

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

いくつかの確認を読んでうれしい:)。grub2-mkconfigをで使用する方法を示す編集を提案しました-o。単純な答えがどれほど役立つかはわかりません-私のほうが厳密に便利というわけではありませんが、これはあなたがまだ何らかの方法でFedoraシステムを起動できるか、またはシャットダウンする前に間違いを犯したことに気づいたことを前提としています。(私の答えは一般的なレスキューディスクに関するものですが、知る限りではインストールにchrootする必要があります。必要なファイルシステムをマウントしてください。これはDebianインストーラーのような特殊なレスキューシステムの良いところです。mount+ chrootあなたのために)。
sourcejedi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.