(hdx,gptx) 대신 --prefix=(UUID)를 사용하는 grub-mkimage를 사용하시겠습니까?

(hdx,gptx) 대신 --prefix=(UUID)를 사용하는 grub-mkimage를 사용하시겠습니까?

이 명령은 완벽하게 작동하지만 다른 드라이브를 연결할 때마다 hd#,gpt#가 변경될 수 있기 때문에 hd#,gpt#를 사용하는 데 익숙하지 않습니다. 따라서 (hd#,gpt#) 대신 UUID로 접두사를 설정해야 한다는 점을 제외하면 정확한 명령이 필요합니다.

grub-mkimage -o /path/to/mounted/esp/partition/EFI/prime_boot/bootx64.efi --format=x86_64-efi '--prefix=(hd0,gpt1)/EFI/prime_boot' ext2 part_gpt

나는 다양한 UUID=9045-CF30, 9045-CF30 등을 시도했습니다. 누구든지 올바른 방법을 알고 있습니까?

답변1

가장 쉬운 방법은 grub.cfg파일을 파일에 포함시키고 bootx64.efigrub이 올바른 접두어를 알아내도록 하는 것입니다. 당신의초기 구성 파일다음만 포함됩니다:

search.fs_uuid 12345678-9abc-def0-1234-56789abcdef0 root
set prefix=($root)'/grub'
configfile $prefix/grub.cfg

그러면 grub-mkimage명령은 다음과 같아야 합니다.

grub-mkimage -o /path/to/mounted/esp/partition/EFI/prime_boot/bootx64.efi -c early-config-file --format=x86_64-efi '--prefix=Dont-Care'  MODULES...(read below)....

이 "초기 구성"은포함하다inside grubx64.efi이므로 호출 하거나 디렉터리 grub.cfg"에 포함할 필요가 없습니다. 이는 실제로 /boot/efi/EFI/wherever/우분투와는 다릅니다./boot/efi/EFI/ubuntu/grub.cfg읽다- 즉, 이름을 바꾸면 시스템이 부팅되지 않습니다.

그런 다음: 모듈. 검색을 사용하려면 ext2 part_gpt수행하는 작업 이상의 내용을 포함해야 합니다. 일반 ext4 형식의 루트 파일 시스템에 대한 최소값은 ext2 part_gpt search configfile test linux loadenv. 비록 글꼴을 로드할 수 없다는 오류가 있지만 적어도 내 설정에서는 작동합니다.

실제로 Ubuntu 자체에는 100개가 넘는 GRUB 모듈과 글꼴이 포함된 memdisk가 포함되어 있습니다. 응 그건 그래~에문서 /boot/efi/EFI/ubuntu/grubx64.efi.

관련 정보