web-dev-qa-db-ja.com

LinuxブートローダーがBIOSアップデート後に検出されない

私はLenovo y500を使用しており、250 GBのSamsung SSDを購入した後、Arch LinuxとWindows 8.1で構成されるデュアルOSを使用することにしました。起動の問題を防ぐため、後でArchをインストールしました。インストールにはUEFIを使用し、systemd-bootを選択しました。 Linuxブートローダーは正常に動作しました。しかし、何らかの理由で、起動画面が画面に正しく配置されず、BIOSを更新することにしました(問題を修正しなかったため後悔しました)。問題は、私の検索によると、ファームウェアに関するものだからです。

その後、ブートオプションでLinuxブートローダーが表示されませんでした。 Windowsブートローダーしかありませんでした。 EFIパーティションを確認したところ、systemd-bootファイルが変更なしに存在していることがわかりました。

PCがLinuxブートローダーを認識できない理由を理解できませんでした。これについてもインターネットには情報がありませんでした。だから私の質問は:

  • BIOSアップデートはEFIブートにどのように影響しますか?
  • 問題が実際に更新に関するものである場合、ロールバックしてみますか?
  • 私の問題では、Arch LinuxライブUSBを使用してEFIを修復することは可能ですか?もしそうなら、どうですか?

BIOSの更新によりセキュアブートが再度有効になったと言わざるを得ません。私はそれを無効にしましたが、それでもうまくいきませんでした。更新プログラムがセキュアブートを再度有効にしたときにEFIに何らかの影響を与えた可能性がありますが、よくわかりません。

4
mwb

Systemd-bootでも同じ問題が発生しました。 MSI gs4 の最近のBIOSパッチの後、systemdブートローダーがBIOSオプションから削除されました。しかし、grub2(ubuntuのローダー)とms-boot(windows ')は引き続き正常に検出されます。 systemd-bootの更新、セキュアブートの切り替え、またはBIOSでのその他のランダムクリックは、いずれも役に立ちませんでした。あなたの質問については:

  1. BIOS更新はEFIブートにどのように影響しますか?この問題は、新しいEFI BIOSバージョンのsystemd-bootサポートに関連しているようです。バグトラッカーにはまだ問題はなく、私は何も作成するのが面倒です。
  2. 問題が本当にアップデートに関するものである場合、それをロールバックしてみますか?いいえ、私の実務では、古いBIOSバージョンをフラッシュすると、ラップトップがレンガに変わる可能性があります。特別な programmer がないと、BIOSをファームウェアに戻すことはできません。常にそうとは限らないが、私は危険を冒さないことに注意してください
  3. 私の問題で、Arch LinuxライブUSBを使用してEFIを修復することは可能ですか?もしそうなら、どうですか?単にgrub2または他の bootloaders に切り替えます。 Archlinux usb livecdは、依然としてUEFIモードで起動可能である必要があります。 @younesの回答はうまくいきます。詳細は wiki を参照してください

編集:

はい、ようやくsystemd-bootから起動できました。私にとって、efi構造の再現は、何らかの魔法の理由で役立ちました。修正する手順は次のとおりです。

  1. Linuxのlivecdから起動します(archlinuxで問題ありません)。
  2. ブートパーティションをマウントし、そこからすべてのデータをどこかにバックアップします
  3. ブートパーティションからすべてのファイルを消去します(ファイルのみ、パーティションでいくつかの操作を行う必要はありません)
  4. Systemdブートを再度インストールしますbootctl install、すでにefiモードでブートしていて、ブートパーティションがマウントされているため
  5. syncファイルを保存し、BIOSで再起動します。 systemdブートがUEFIローダーに表示されます。最初にマークします。これでsystemdの再起動後、bootが利用可能になります!
  6. Livecdから古いUEFI構造を復元します。 (バックアップされた/ bootを、それらを上書きするパーティションの新しくインストールされたファイルにコピーします。)
  7. もう一度再起動して、システムから起動します。

これがお役に立てば幸いです。

4
deathangel908

もっと簡単な方法があります。 WindowsのブートオプションからUEFIファームウェア設定を入力するだけです。起動順序を変更して、Linuxを最初に起動します。変更を保存して終了します。再起動するとgrubが読み込まれ、2つのOSのどちらかで起動できます。

1
user279251

ライブCDまたはUSBを使用し、ハードドライブにあるArchlinuxにchrootしてからupdate-grubを実行します。また、grub-install /dev/sda && update-grubを実行する必要がある場合もあります。

ハードドライブに関する詳細情報(パーティションテーブル、タイプ、およびパーツスキーム...)を提供できる場合は、lsblkおよびSudo fdisk -lの標準出力

1
Jonah

昇格されたコマンドプロンプトを開き(Windows Keyを押し> CMDを入力>コマンドプロンプトを右クリック> Run as administratorを選択)、次のように入力します。

bcdedit /set {bootmgr} path \EFI\GRUB\grubx64.efi 

(上記のコマンドで置き換えることができますGRUBwithdebianDebian OSの場合、ubuntu Ubuntu OS)

0
Nabeel Kirmani