UEFI는 사용할 부트로더 구성을 어떻게 알 수 있나요?

UEFI는 사용할 부트로더 구성을 어떻게 알 수 있나요?

UEFI에 대해 읽은 지 꽤 시간이 지났고 일부 부분이 어떻게 연결되는지 잊어버렸습니다. UEFI와 Grub 부트로더가 어떻게 함께 작동하는지 잊어버렸습니다. 제가 기억하는 대로 말씀드리겠습니다. 제가 틀렸다면 정정해 주시기 바랍니다.

  • UEFI는 OS 독립적이며 디스크 수에 관계없이 단일 ESP 파티션을 사용하여 작동합니다.
  • ESP 파티션은 새 운영 체제가 자체 폴더에 부트로더와 파티션 참조를 추가하여 UEFI 프로세스를 "구독"하는 곳입니다. 기본적으로 설치된 각 OS마다 /boot/efi에 하나의 폴더가 있습니다.
  • 부트로더는 NVRAM에 순서대로 저장됩니다.

지금 저는 Ubuntu, Windows 및 Arch가 설치된 컴퓨터를 사용하고 있습니다. 모든 OS에는 자체 부트로더가 있지만 내 컴퓨터에 "부팅 항목"이 표시될 때마다 실제로는 Ubuntu의 Grub 구성을 보고 있는 것입니다. 마치 Ubuntu의 grub을 사용하여 내 컴퓨터에 운영 체제를 로드하는 것과 같습니다.

그래서 질문은: UEFI는 Ubuntu가 나의 "주" 부트로더라는 것을 어떻게 알 수 있습니까? 컴퓨터를 시작할 때마다 Windows 또는 Arch 부트로더가 표시되지 않는 이유는 무엇입니까?

답변1

UEFI는 시스템 펌웨어이고 GRUB는 펌웨어에 맞게 제작된 부트로더입니다.

BIOS가 포함된 GRUB은 MBR 내부와 첫 번째 파티션 이전에 부팅 코드 형식을 취합니다. UEFI를 사용하면 GRUB는 grubx64.efiESP 파티션 내에서 단일 파일 형식을 취할 수 있습니다 . GRUB 아키텍처 식별자는 i386-pc64비트 x86 하드웨어의 BIOS 및 UEFI용입니다 x86_64-efi.

UEFI는 아무것도 모릅니다. 일반적으로 찾은 부트로더에 대한 메뉴만 표시합니다. 부트로더가 하나만 발견되면 메뉴가 표시되지 않으며, 질문 없이 해당 부트로더를 부팅합니다.

귀하의 경우에는 Grub이 존재하는 유일한 부트로더이므로 부팅 시 즉시 실행됩니다.

EFI 펌웨어에서 부팅을 위해 Grub을 선택하는 방법에는 두 가지가 있습니다.

  1. UEFI 부팅 변수는 시스템 NVRAM에 저장됩니다. Linux에서는 다음을 사용하여 편집할 수 있습니다 efibootmgr. Windows에서는 bcdedit /enum FIRMWARE목록을 나열한 다음 편집할 수 있습니다.

  2. UEFI 부팅 변수가 정의되지 않은 경우 UEFI 펌웨어는 ESP 파티션 내부에서 부트로더를 찾습니다. 귀하의 경우에는 \EFI\boot\bootx64.efi64비트 하드웨어를 찾을 수 있습니다 .

관련 정보