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.efi
EFIブートリストに追加し、それをデフォルトのブートリストにします。
efibootmgr -c -p 1 -d /dev/sda -L "GRUB" -l '\efi\debian\grubx64.efi'
-p 1
およびオプションは、-d /dev/sda
BOOTサブディレクトリを作成した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-removable
Redhat と同様に、EFI ディレクトリと Debian ディレクトリに BOOT ディレクトリが作成されます。ほとんどのBIOS(たとえば、HP BIOS、最新のDell BIOSのようです)は、このBOOTディレクトリを使用してファイルを見つけてBOOTX64.EFI
自動的に起動エントリを作成するため、UEFIを自動的に起動できます。
--target
ブートするシステムと同じバイナリタイプでgrub-installを実行している場合、Debianは自動的に正しい値を設定するため、このオプションは必須ではありません。
--recheck
-B
ここでの目的は、UEFIテーブルを再作成し、のオプションを使用して関連性がなくなった以前の起動エントリを消去することですefibootmgr
。