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

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

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

その後、起動オプションでLinuxブートローダを見ることはできません。 Windowsブートローダ専用です。 EFIパーティションを確認したところ、systemd-bootファイルが変更なしで存在することがわかりました。

コンピュータがLinuxブートローダを表示できない理由を理解できません。インターネットにもこれに関する情報はありません。だから私の質問は次のようになります

  • BIOSアップデートがEFIブートにどのような影響を与えますか?
  • 実際にアップデートに問題がある場合は、ロールバックを試す必要がありますか?
  • 私の質問については、Arch Linux Live USBを使用してEFIを修正できますか?それではどうですか?

BIOSアップデートがセキュアブートを再度有効にすると言う必要があると思います。無効にしましたが動作しません。セキュアブートが再度有効になると、アップデートはEFIに若干の影響を与える可能性がありますが、わかりません。

答え1

systemd-bootにも同じ問題があります。最近のBIOSパッチの後 msi gs40、systemdブートローダがBIOSオプションから消えました。ただし、grub2(Ubuntu用ローダー)とms-boot(Windows用)はまだ正常に検出されます。 systemd-bootアップデート、セキュアブート切り替え、またはBIOSの他のランダムクリックも役に立ちませんでした。あなたの質問について:

  1. BIOSアップデートがEFIブートにどのような影響を与えますか? この問題は、新しいEFI BIOSバージョンのsystemd-bootサポートに関連しているようです。バグトラッカーにはまだ問題がなく、怠惰なので問題を作成できません。
  2. 実際にアップデートに問題がある場合は、ロールバックを試す必要がありますか? いいえ、私が経験したところによると、古いBIOSバージョンを更新すると、ラップトップがレンガのように変わることがあります。特別な方法がなければ、BIOSファームウェアを復元することはできません。プログラムメーカー。必ずしもそうではありませんが、リスクを負うわけではありません。
  3. 私の質問については、Arch Linux Live USBを使用してEFIを修正できますか?それではどうですか? grub2などに切り替えます。ブートローダー。 Archlinux usb livecdはまだUEFIモードで起動する必要があります。 @younesの答えがいいでしょう。詳細については、次を参照してください。ウィキペディア

編集する:

まあ、ついにsystemd-bootから起動できました。私にとっては、efi構造を再構築することが何らかの魔法の理由で役に立ちました。修正手順は次のとおりです。

  1. すべてのLinux livecdから起動します(archlinuxによって実行されます)。
  2. ブートパーティションをマウントし、その中のすべてのデータをどこかにバックアップします。
  3. ブートパーティション内のすべてのファイルを削除する(ファイルのみを削除し、パーティションに対して何もする必要はありません)
  4. bootctl installefi モードで起動し、起動パーティションがマウントされたので、systemd 起動を再インストールします。
  5. syncキャッシュを更新してBIOSから再起動するコマンドを実行します。 systemdの起動がUEFIローダーに表示されます。最初にマークしてください。これで、再起動後にシステム起動を使用できるようになります!
  6. livecdから古いUEFI構造を復元します。 (バックアップされた/bootをパーティションに新しくインストールされたファイルにコピーして上書きします。)
  7. 再起動してシステムから起動します。

これがあなたに役立つことを願っています。

答え2

管理者特権のコマンドプロンプトを開き(クリックWindows Key>タイプCMD>コマンドプロンプトを右クリック>選択Run as administrator)、次のように入力します。

bcdedit /set {bootmgr} path \EFI\<<LINUX OS>>\grubx64.efi 

(上記のコマンドで <<LINUX OS>> debianDebianオペレーティングシステムとubuntuUbuntuオペレーティングシステムに適用できます。例bcdedit /set {bootmgr} path \EFI\debian\grubx64.efi:)

答え3

より簡単な方法があります。 Windows起動オプションでUEFIファームウェア設定を入力するだけです。起動順序を変更し、Linuxが最初に起動するようにします。変更を保存して終了します。再起動すると、grubがロードされ、両方のオペレーティングシステムのいずれかで起動できます。

答え4

ライブCDまたはUSBを使用して、ハードドライブからArchlinuxでchrootをupdate-grub実行することもできますgrub-install /dev/sda && update-grub

ハードドライブ(パーティションテーブル、タイプ、部品スキーム...)lsblkと標準出力に関する追加情報を提供できる場合sudo fdisk -l

関連情報