Windows 10がLinux EFIブートエントリを消去する可能性が高いという回答の後の説明を参照してください。ここ:
Windowsを一度起動すると、Windows 10は通常ファームウェア起動エントリを「自己修復」します。このプロセス中にファームウェア(リストなど)に既存のWindowsブートエントリがない場合、通常はすでに使用されているかどうかにかかわらず、独自に上書きされ
efibootmgr
ます。Boot0000
Windows 10でEFIブートエントリを消去しても簡単に復元できるように、EFIブートエントリを事前にバックアップしたいと思います。
しかし、これを行うことができる既存のツールはないようです。https://github.com/rhboot/efibootmgr/issues/10efivar
ユーティリティは言及されていますが、いくつかの手動プロセスがあります。ただし、その方向に関する追加情報が見つかりません。
したがって、問題があります。または、次のEFIブートエントリがある場合:
Boot0000* debian HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
次はどうやって再作成できますか?
答え1
起動方法を知ってツールを準備したら、最初から起動を再開するのは簡単ですefibootmgr
。確かに。
Boot0000* debian HD(13,GPT,007a058a-8e5e-45df-8d97-6575b66b5355,0x1afa9000,0x113000)/File(\EFI\debian\grubx64.efi)
007a058a-8e5e-45df-8d97-6575b66b5355
ESPパーティションのPARTUUID \EFI\debian\grubx64.efi
。 (13
可能はパーティション番号ですが、仕様によると、PARTUUIDはデフォルトの識別子です。 )
コマンドefibootmgr
はディスクのみを知る必要があります。ディスクごとに1つのESPしかないと仮定すると、そのディスクとそのPARTUUIDでESPパーティションを自動的に見つけます。したがって、このPARTUUIDがあなたの/dev/sda13
パーティションに属していると仮定します(使用blkid
またはlsblk -o +partuuid
確認)。
開始項目を再生成する(または今追加のコピーを作成するには):
efibootmgr -c -d /dev/sda -L debian -l \\EFI\\debian\\grubx64.efi
バックスラッシュはシェルの特殊エスケープ文字であるため、2倍になります。
このコマンドはESPパーティション/dev/sda
と対応するPARTUUIDを自動的に検索し、起動エントリを作成します。
efibootmgr
BootNNNN
開始項目の最初の無料番号が自動的に選択され、に自動的に追加されるため、すでに存在するBootOrder
場合は作成され、に設定されます。Boot0000
Boot0001
BootOrder
0001,0000
0000
これは現在の開始エントリの有効なバックアップです。
(lsblk -o +partuuid; efibootmgr -v) > boot-entry-repair-kit.txt
答え2
ファームウェアefiブートエントリをバックアップする必要はありません。ツールだけで簡単に復元できます。
通常、WindowsはLinuxエントリを削除しませんが、まず優先順位を付けることができます。最新のファームウェアを使用すると、デバイスとインストールされているEFIエントリを一覧表示するブートメニューを開くことができます。ここでLinuxエントリを選択でき、必要に応じてgrubインストーラまたはefibootmgrを再実行してエントリの順序を変更できます。
複数の項目をサポートしていない古いファームウェアがある場合は、[設定]に移動して現在の項目を編集して内容を記録し、Windowsでその項目を削除してから手動で再入力できます。
これがすべて失敗した場合は、USBスティックにrefindなどのEFIセレクタをインストールし、それを使用してEFI ESPパーティションから起動可能なOSを検索し、そこからLinuxを選択して上記のようにgrubを再インストールできます。
Linux自体がEFIパーティションで破損している場合、refindは時々Linuxパーティションに直接移動してカーネルを直接起動することがあります。
別の方法は、リカバリモードでLinuxインストールメディアを起動し、EFIエントリを回復することです。