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/

그런 다음 종료하고 라이브 시스템을 삭제한 후 다시 시작하십시오.

사용된 경로에 대한 자세한 정보를 찾을 수 있습니다.여기.

관련 정보