Linux mint 19.2およびWindows 10のGrub / Bootmgrの問題

Linux mint 19.2およびWindows 10のGrub / Bootmgrの問題

私は3年間何の問題もなくラップトップからLinux mint 19とWindows 10を二重起動してきました。今日、Linuxでapt-getアップグレードコマンドを実行しましたが、grub、osproberなどの認証エラーが発生しました。 grub/* をクリアして grub-efi を再インストールすると、パッケージのアップグレードに関する問題が修正されました。ただし、Windowsで起動した後、再びLinuxで起動することはできません。 (grub画面が表示されず、ノートパソコンがWindowsに直接起動します。)

  1. いくつかのフォーラムの提案に基づいて、私は以下を実行しました。

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

Windows cmdの管理者権限があります。これでノートブックを再起動すると、「選択したブートイメージが認証されていません」エラーが発生します。

  1. BIOSで通常の起動を有効にしました。これにより、Ubuntuバックアップが有効になります(グラブ画面なし)。 Ubuntuターミナルでsudo update-grubを実行しましたが、ターミナルディスプレイにgrubがWindowsブートマネージャイメージを見つけることができることがわかりました。今回再起動したらグラブ画面が出ましたが、そこにはウィンドウオプションがありませんでした。

  2. Ubuntuで起動し、「Windows EFIファイルのバックアップと名前の変更」オプションを使用して起動回復を実行しました。すべての変更を適用した後、Windows オプションが grub 画面に表示されますが、Enter キーを押すと grub 画面に戻ります。 BIOS(システムリカバリ)でF11を選択すると、再びグラブに戻りました。ここでは、同じ問題のある他の投稿を見つけることができませんでした。このステップはレガシーモードでも行われます。以前のモードをオフにするとイメージ認証エラーが発生し、まだ何も起動できません。貼り付けボックスはここにあります:http://paste.ubuntu.com/p/96jHFRfYBF

どんなアドバイスも本当にありがとうございます。現在、私はWindowsシステムを復元するために何かをすることを望んでいます(Linuxファイルシステムがより体系化されており、手順2ですべてをバックアップできたため、Linux Mintシステムを削除することも含まれます)。

ベストアンサー1

ただし、Windowsで起動した後、再びLinuxで起動することはできません。 (grub画面が表示されず、ノートパソコンがWindowsに直接起動します。)

これは、Windows 10がシステムに存在する可能性がある他のオペレーティングシステムに関係なく、UEFI NVRAMブートエントリが改ざんされたことを検出して「自己回復」する可能性があります。これはWindows 10で行うことであり、私が知っている限り、この問題を解決する方法はありません。

UEFI NVRAMブートエントリの現在の状態は、Pastebinのブートリカバリ出力で見ることができます。

===================================== UEFI =====================================

BIOS is EFI-compatible, and is setup in EFI-mode for this installed-session.
SecureBoot disabled.

efibootmgr -v
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0000,0001,0003,9999
Boot0000* Windows Boot Manager  HD(1,GPT,afab201a-94f8-11e8-851f-806e6f6e6963,0x800,0x12bfff)/File(\EFI\ubuntu\grubx64.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...a................
Boot0001* ubuntu    HD(1,GPT,afab201a-94f8-11e8-851f-806e6f6e6963,0x800,0x12bfff)/File(\EFI\ubuntu\grubx64.efi)
Boot0003* Internal Hard Disk    PciRoot(0x0)/Pci(0x17,0x0)/Sata(2,32768,0)/HD(1,GPT,afab201a-94f8-11e8-851f-806e6f6e6963,0x800,0x12bfff)..BO
Boot9999* USB Drive (UEFI)  PciRoot(0x0)/Pci(0x1d,0x0)/USB(16,0)..BO

Boot0000エントリは現在BootOrderの最初のエントリであり、読み取り可能な名前は「Windows Boot Manager」ですが、実行している実際の起動ファイルは\EFI\ubuntu\grubx64.efi

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efiこれは実際にWindowsにコマンドを実行するように指示するものであり、あなたの問題によって引き起こされる可能性があります。

\EFI\Microsoft\boot\bootmgfw.efiWindows 10は起動時に自動的にそれを標準に戻し、このBoot0000項目はfirstに指定されているため、BootOrderWindowsの「自己修復」は起動するとすぐにシステムをWindowsにドロップします。

あなたができることは、Boot0001Ubuntu()の起動エントリが最初になるように起動順序を変更することです。 Windowsは、アイテムが変更されない限り、それを変更することBoot0000を消極的にしているようです。次のようなさまざまな方法でこれを実行できます。

ubuntua.) BIOS 起動順序設定にアクセスし、起動順序で最初にマークされた項目を移動します。

b.) Windows 管理者特権のコマンド プロンプトで、次のコマンドを実行し、設定されたブートbcdedit /enum FIRMWAREエントリを見つけて記録します。これは中かっこ内の長いUUID文字列です。次に実行します。descriptionubuntuidentifierbcdedit /set {fwbootmgr} DEFAULT {UUID of the ubuntu entry}メモ:重要なのはここで{fwbootmgr}はなく使用することです{bootmgr}

c.) Linux では、以下を使用して起動順序をオーバーライドできます。

sudo efibootmgr --bootorder 0001,0000,0003,9999

これを行うにubuntuは、起動順序で最初にアイテムを配置し、Windows Boot Manager現在のアイテムと同じ順序で別の既存のアイテムを配置する必要があります。

しかし、読んでください...


また、PastebinはBoot Repairがこれを正常に実行したことを示します。

mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bkpbootmgfw.efi
cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

つまり、Windowsをbootmgfw.efi横に移動してUEFI GRUBコピーに置き換えます。時にはUEFIファームウェアエラーのトラブルシューティングに必要な場合もありますが、以前はシステムが動作していたため、これは必要ないかもしれません。このタスクを元に戻す必要があります。ミントではそうしなけれsudo cp /boot/efi/EFI/Microsoft/Boot/bkpbootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efiばなりません。

あるいはウィンドウに入ると、bootmgfw.efiユーザーに知らせずに「自己治癒」という名前ですぐにWindowsバージョンに置き換えてくれることもある。


BIOS設定があなたをだますようです。 「レガシーモード」は「MBRやUEFIに似ているようですが、UEFIが好まれるようです」。

レガシーモードをオフにすると画像認証エラーが発生する

これは、「レガシーモードオフ」も自動的にセキュアブートを有効にすることを意味します。

これで、Windowsはbootmgfw.efiWindowsのコピーに置き換えられており、grubx64.efiそうでないファームウェアによって直接ロードされているため、shimx64.efiSecure Bootの確認が失敗すると予想されます...そして「イメージ認証エラー」が表示されるようです。

ubuntuしたがって、起動エントリがshimx64.efiセキュアブート仕様を使用するようにするには、セキュアブートが使用されていsudo efibootmgr -b 0001 -l \\EFI\\ubuntu\\shimx64.efiない場合は同じディレクトリでshimx64.efi直接実行されるため、grubx64.efiセキュアブートが適用されない場合でもダメージは発生しません。

Windows側でこれを行うのは少し面倒です。bcdedit /enum FIRMWAREアイテムのUUIDを再度識別したら、次ubuntuを使用します。

bcdedit /set {UUID of the ubuntu entry} path \EFI\ubuntu\shimx64.efi

おすすめ記事