USBから起動し、「インストールせずにUbuntuを使用」を選択し、別のUSBを接続してインストーラにインストールするように指示してUbuntu 16.04をインストールしました。/dev/sdc2
ESPがある場所にブートローダをインストールするようにインストーラに指示しました。これで、パーティションで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/sdb2
grubを/ 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/
その後、シャットダウンしてライブシステムを削除して再起動します。
使用されたパスに関する詳細情報を見つけることができます。ここ。