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/
그런 다음 종료하고 라이브 시스템을 삭제한 후 다시 시작하십시오.
사용된 경로에 대한 자세한 정보를 찾을 수 있습니다.여기.