UEFIシステムでgrub2rescue promtを介して起動する方法は?

UEFIシステムでgrub2rescue promtを介して起動する方法は?

USBから起動し、「インストールせずにUbuntuを使用」を選択し、別のUSBを接続してインストーラにインストールするように指示してUbuntu 16.04をインストールしました。/dev/sdc2ESPがある場所にブートローダをインストールするようにインストーラに指示しました。これで、パーティションでshimとGRUB EFIファイルを見ることができるので、ブートローダが実際にインストールされていることがわかります。

ただし、インストール後に起動しようとすると、起動メニューが表示されるのではなく、回復プロンプトで起動します。

grub rescue>

その後、ESPパーティションがhd0,gpt2予想されたものと一致することがわかりましたhd1,gpt2(ここではgrubの命名スキームが使用されました)。

同様の質問を見ましたが、残念ながらEFIではなくBIOSシステムに関する情報のみが見つかりました/。私は別のディスク上のgrub efiファイル/boot(/efi)で作業を続ける方法を探しています。カーネルとinitrdはどちらもESPの内部にあり、問題は別の場所にあるはずです。/hd0,gtp3

この問題をどのように解決できますか?

出力ls

(hd0) (hd0,gpt5) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (hd1) (hd1,gpt8) (hd1,gpt7) (hd1,gpt6) (hd1,gpt5) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)

出力ls (hd0,gpt2)/

syslininux/ vmlinuz.efi inird.lz efi/

コンテンツ/media/ubuntu/ba6e9aff-b9b7-4c4f-8441-98db8ec7a08a/boot/grub/grub.cfg:

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-ba6e9aff-b9b7-4c4f-8441-98db8ec7a08a' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd2,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd2,gpt3 --hint-efi=hd2,gpt3 --hint-baremetal=ahci2,gpt3  ba6e9aff-b9b7-4c4f-8441-98db8ec7a08a
else
  search --no-floppy --fs-uuid --set=root ba6e9aff-b9b7-4c4f-8441-98db8ec7a08a
fi
linux   /boot/vmlinuz-4.4.0-28-generic.efi.signed root=UUID=ba6e9aff-b9b7-4c4f-8441-98db8ec7a08a ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-4.4.0-28-generic  }  

更新:grub-install /dev/sdb2grubを/ dev / sdb2に再インストールしましたが、ほとんどのgrubファイルはまだ/ dev / sdb3にあるため、grubはext2.modをロードする方法がわからないため、そのファイルにアクセスできません。出力の一部はx86_64-efiアーチを使用しています。

救助コンソールを少し乱れてますます良くなりますが、接続ができない理由を見つけたかもしれません。 grub回復モードはi386-pcモードファイルのみを許可しますが、インストールされているすべてのモードファイルはx86_64-efiモードファイルです。

ベストアンサー1

誰かがUEFI仕様を完全に実装していないからです。

あなたがしなければならないのは、ライブシステムを起動して次のことだけです。

sudo mount -U <UUID of your ESP> /mnt
sudo mkdir /mnt/EFI/BOOT
sudo cp -v /mnt/boot/<your-vendor>/grubx64.efi /mnt/EFI/BOOT/

その後、シャットダウンしてライブシステムを削除して再起動します。

使用されたパスに関する詳細情報を見つけることができます。ここ

おすすめ記事