マザーボードにDebian UEFIファイルを登録するにはどうすればよいですか?

マザーボードにDebian UEFIファイルを登録するにはどうすればよいですか?

Debianがインストールされているディスクを別のコンピュータに移動しても起動できません。 systemrescuecdを使用してuefiパーティション(512MB、vfatファイルシステム、EFIディレクトリを含む)をマウントし、ジョブを実行しましたが、cd /mnt/sda1 && mkdir BOOT && cp debian/grubx64.efi BOOT/bootx64.efi正常に起動しました。 (私が受けたアドバイスはアクベント)今、どのように登録しますか?Debian/grubx64.efi削除できるように、システムにファイルを登録してください。ブート/bootx64.efi

答え1

Linuxでは、EFIブートエントリを一覧表示して操作できますefibootmgr

システムを手動で正常に起動したら、次のものがインストールされていることをefibootmgr確認してください。

apt-get install efibootmgr

efivars次に、擬似ファイルシステムがRWとしてマウントされていることを確認してください。

mount -o remount,rw -t efivarfs efivarfs /sys/firmware/efi/efivars

コマンドが失敗したり、efibootmgr同様のメッセージが表示された場合は、EFI variables are not supported on this system.EFIモードで起動しません。再起動してもう一度やり直してください。

最後に、debian/grubx64.efiEFIブートリストに追加し、それをデフォルトのブートリストにします。

efibootmgr -c -p 1 -d /dev/sda -L "GRUB" -l '\efi\debian\grubx64.efi'

-p 1およびオプションは、-d /dev/sdaBOOTサブディレクトリを作成したEFIシステムパーティションを含むパーティションおよびブロックデバイスを指定します。 -Lは生成される項目のラベルで、-lブートローダのパスです。

を使用して不要なアイテムを削除できますefibootmgr -b <boot-entry> -B

を使用して、現在のEFIブートエントリの詳細なリストを取得できますefibootmgr -v

man efibootmgr詳細より。注意深く読んでインターネット検索をするか、ここに説明を求めることをお勧めします。今後上記のいずれかのコマンドを実行します。

答え2

読んだ後https://wiki.archlinux.org/index.php/GRUB#UEFI_systemsman grub-installこれで、sudo grub-install --efi-directory $MY_ESP_MOUNTPOINT --target=x86_64-efi「debian」ブートターゲットが一覧表示され、実行されています。

答え3

私はコマンドを使用することをお勧めします

sudo grub-install --efi-directory $MY_ESP_MOUNTPOINT --force-extra-removable --recheck

Debian の場合、--force-extra-removableRedhat と同様に、EFI ディレクトリと Debian ディレクトリに BOOT ディレクトリが作成されます。ほとんどのBIOS(たとえば、HP BIOS、最新のDell BIOSのようです)は、このBOOTディレクトリを使用してファイルを見つけてBOOTX64.EFI自動的に起動エントリを作成するため、UEFIを自動的に起動できます。

--targetブートするシステムと同じバイナリタイプでgrub-installを実行している場合、Debianは自動的に正しい値を設定するため、このオプションは必須ではありません。

--recheck-Bここでの目的は、UEFIテーブルを再作成し、のオプションを使用して関連性がなくなった以前の起動エントリを消去することですefibootmgr

関連情報