最近、システムをUEFIブートに移行しました。
システムは、SATAハードドライブを搭載したHP EliteBook 840 G1です。 Ubuntuは唯一のオペレーティングシステムです。
ディスクをGPTに変換し、必要なパーティションを追加し、マウントしてgrub-efi-amd64
実行しましたgrub-install --target=x86_64-efi /dev/sda
。 (私のbashの記録によると、これはしばらく前に行われました。)
システムを再起動すると、Ubuntuで直接起動しました。
しかし、最初のコールドブート後、システムは正しくブートされませんでした。まず、LANから起動しようとした後、オペレーティングシステムがインストールされていないというメッセージが表示され、システム診断のためにF2を押すように求められます。これで診断ツールを終了すると、Ubuntuが表示されました。
BIOS設定で起動順序を操作してみました。 SATAディスクから起動するオプションはありません(ただし、インストールされている場合はM.2 SSDから起動するオプションはあります)。それで、OSブートマネージャを一番上に移動しましたが、役に立ちませんでした。それでも同じエラーが発生します。
何を提供しますか?
答え1
GPartedの他のシステムとパーティションテーブルを比較した後、EFIシステムパーティションに無効なフラグが設定されていることがわかりました。つまり、msftdata
設定時に設定されたが欠落していboot
ますesp
。
それ以外は、以前の回避策の試みをキャンセルし、OSブートローダを起動順序の一番上に移動しました。
これでシステムは何度も中断され、毎回手動介入は必要ありません。
以前の方法(下記参照)はしばらく動作しているように見えましたが、次の試みでは以前の動作が再び発生しました。
次のパスを使用してカスタム起動エントリを追加して問題を解決しました。
\EFI\ubuntu\grubx64.efi
お使いのシステムでは状況が異なる場合があります。/boot/efi
EFIパーティションを参照し、.efi
そこからファイルを見つけます。最初の文字を削除し/boot/efi
(たとえば、/boot/efi/EFI/ubuntu/grubx64.efi
に変更します\EFI\ubuntu\grubx64.efi
)、それをカスタムスタートアップエントリとして設定します。
カスタム起動項目がリストの上部にあることを確認してください(システムが誤って意図したものとは異なる項目で実行しようとしないように)。
これで、システムはコールドブート後もUbuntuで直接起動します。
注:私のシステムには別の項目があります\EFI\BOOT\BOOTX64.EFI
。これが grub エントリと異なるかどうかはわかりません。