내가 이해한 바에 따르면 uefi BIOS는 efi 파티션에서 grub.efi를 로드합니다. 이제 /boot 디렉터리에서 여러 grub 모듈과 구성 파일이 로드됩니다.
그러면 grub은 부팅 파티션이 있는 올바른 장치를 어떻게 찾나요? 이전 버전의 grub에서는 일반적으로 다음 명령을 사용하여 특정 파티션에 grub을 설치했습니다.
# grub-install --root-directory=/dev/sda
따라서 시작 디렉토리를 찾을 위치가 매우 명확합니다. grub-efi는 올바른 장치를 어떻게 찾나요?
답변1
ghex를 이용하여 efi 파티션의 "BOOTX64.EFI" 파일을 확인한 결과 이런 줄을 발견했습니다.
search.fs_uuid a43d1f11-6ebe-477d-8be3-321a33bc37f9 root hd2,gpt4
set prefix=($root)'/boot/grub'
이는 grub(부팅 파티션)의 위치 정보가 grub2-install에 의해 시스템용으로 생성된 BOOTX64.EFI 파일에 포함되었음을 나타냅니다.
그런 다음 EFI 로더는 Grub2를 실행하고 기본 커널을 부팅하거나 로드할 운영 체제(커널)를 선택하는 grub 인터페이스를 얻습니다.
좀 더 확장하자면, ".EFI" 파일은 UEFI 하위 시스템이 실행할 수 있는 응용 프로그램과 비슷합니다. 시스템을 부팅하고 실행 보호 및 바이러스 백신 유형 프로그램을 실행할 수 있는 편리한 위치를 제공하도록 설계되었습니다.
그들은 "Unified Extensible Firmware Interface"에 확장성을 부여했습니다.