EFI \ boot \ bootx64.efi 대 EFI \ ubuntu \ grubx64.efi 대 /boot/grub/x86_64-efi/grub.efi 대 C : \ Windows \ Boot \ EFI \ *

Windows 10 64 비트와 함께 Ubuntu 19 64 비트를 설치했는데 서로 다른 위치에 3 개의 다른 EFI 파일이 있음을 발견했습니다.

EFI\boot\bootx64.efi EFI\ubuntu\grubx64.efi /boot/grub/x86_64-efi/grub.efi 

이 세 가지의 차이점은 무엇입니까?

설명

  • 일반적으로 두 Windows & grub2는 bootx64를 설치합니다. 대체 또는 하드 드라이브 UEFI 부팅 항목으로 efi. 또한 모든 외부 장치에 대한 표준 경로 & 파일입니다. /EFI/ubuntu/grubx64.efi 및 /EFI/ubuntu/shimx64.efi가 모두 있어야합니다. Shim은 보안 부팅 용이지만 보안 부팅이 꺼진 상태에서 부팅됩니다. 왜 우리가 여전히 땅벌레를 가지고 있는지 모르겠습니까? grub.efi가 어디에서 왔는지 확실하지 않습니다. 언젠가는 기본 GRUB 항목을 사용하는 다른 배포판을 설치해야합니다.
  • EFI가있는 다중 Linux 배포판 USB 드라이브를 구하기 위해 연구 중입니다 (이미 MBR 용으로 만들었지 만 ' EFI 만 지원하는 BIOS가있는 최신 컴퓨터에서 작동하지 않음) 질문에 답하고 EFI를 매우 자세하게 설명하는이 페이지를 찾았습니다. 답변에 비해 크기가 크므로 ' 모든 작동 방식을 이해하려는 경우 링크를 넣을 것입니다 : 로드 북. com / efi-bootloaders

답변

EFI\boot\bootx64.efi : 폴백 부트 로더 경로

64 비트 X86 시스템의 UEFI 펌웨어가 기존 NVRAM 부팅 설정없이 찾을 유일한 부트 로더 경로 이름이므로 사용하려는 경로입니다. 이동식 미디어.

Windows는 부트 로더의 복사본을이 경로에 자동으로 설치합니다. GRUB를 설치할 때 grub-install (또는 Linux 배포에 따라 grub2-install) 명령이 해당하는 경우 여기에 해당 부트 로더의 복사본을 넣을 수도 있습니다. 이미 존재하지 않습니다. 원하는 경우 grub-install --removable를 사용하여 대체 부팅 경로에 설치하도록 지시하거나 grub-install --force-extra-removable를 사용하여 기존 부트 로더를 덮어 쓸 수 있습니다. 대체 경로를 GRUB로 교체합니다.

UEFI 용 보안 부팅 호환 USB 스틱을 만들려면 shim의 복사본을 EFI\boot\bootx64.efiEFI\boot\grubx64.efi의 GRUB 사본. shim 부트 로더는 shim 부트 로더가있는 동일한 디렉토리에서 grubx64.efi 를 찾습니다. in.

영구적으로 설치된 OS의 부트 로더 경로

운영 체제가 UEFI 시스템에 영구적으로 설치 될 때 절대 존재하지 않았던 하나의 새로운 단계가 있습니다. 클래식 BIOS. 부트 로더를 설치할 때 펌웨어 설정을 보유하는 NVRAM 메모리에 다음 네 가지가 기록됩니다.

  • 부트 로더를 보유하는 ESP (EFI 시스템 파티션)의 부트 로더 경로 이름
  • ESP 파티션의 GUID
  • 이 특정 부트 로더 인스턴스를 설명하는 (사람에게 친숙한) 이름
  • 선택적으로 부트 로더에 대한 일부 데이터

Windows의 경우 Windows 부팅 프로세스의 표준 UEFI 경로 이름은 \EFI\Microsoft\Boot\bootmgfw.efi이고 설명 이름은 " Windows입니다. 부팅 관리자 ". 선택적 데이터에는 Windows 부트 로더의 BCD 구성 파일에있는 항목에 대한 GUID 참조가 포함 된 것 같습니다.

Ubuntu의 경우 경로 이름은 \EFI\Ubuntu\grubx64.efi 여야합니다. “보안 부팅 지원이 필요하지 않거나 보안 부팅 shim이 사용되는 경우 \EFI\Ubuntu\shimx64.efi가 필요하지 않습니다. 설명이 포함 된 이름은 단순히 " ubuntu "이며 선택적 데이터는 사용되지 않습니다.

Ubuntu에서 이러한 UEFI NVRAM 부팅 설정은 sudo efibootmgr -v 명령을 사용하여 볼 수 있습니다. Windows에서는 관리자 권한으로 명령 프롬프트를 시작한 다음 bcdedit /enum firmware 명령을 사용하여 설정을 볼 수 있습니다.

UEFI 사양 각 공급 업체가 ESP의 \EFI\<vendor name> 경로 내에 영구적으로 설치된 OS 용 부트 로더를 배치해야한다는 표준 규칙이 있으므로 동일한 ESP에 여러 UEFI 부트 로더가 공존하는 것이 실제로 지원됩니다. 디스크 당 단일 마스터 부트 레코드가있는 클래식 BIOS보다 작업이 더 쉬워집니다.

/boot/grub/x86_64-efi/grub.efi :

grub-install를 사용하면 먼저 grub-mkimage 유틸리티를 사용하여 GRUB 코어 이미지 : UEFI 시스템에서이 파일은 그 전에 /boot/grub/x86_64-efi/grub.efi 및 / 또는 .../core.efi에 저장됩니다. EFI 시스템 파티션에 복사되고 grub-install에 의해 UEFI NVRAM 부팅 설정에 추가됩니다./boot/grub/x86_64-efi/*.efi의 사본은 부팅 프로세스에서 전혀 사용되지 않지만 어떤 이유로 든 ESP가 손상된 경우 유용 할 수 있습니다.

참고 : Debian / Ubuntu에서 생성 된 GRUB 코어 이미지에는 /boot 디렉토리이므로 다음에서 /boot/grub/x86_64-efi/grub.efi 또는 grubx64.efi의 사본을 만들 수 없습니다. ESP를 이동식 미디어로 이식합니다. /boot 파일 시스템의 고유 UUID를 찾으려고 시도하고 찾지 못하면 복구 모드로 전환됩니다. 올바르게 기억한다면 RedHat / CentOS / Fedora의 GRUB가 이동식 미디어로 이식하는 데 더 적합 할 것입니다.

보안 부팅 : shimx64.efi 및 그 이유

보안 부팅을 사용하려면 시스템의 보안 부팅 NVRAM 변수 db 또는 부트 로더의 SHA256에 포함 된 인증서로 부트 로더에 서명해야합니다. 해시는 동일한 NVRAM 변수에 허용되어야합니다. SHA256 해시는 특정 부트 로더의 특정 버전과 만 일치하므로 펌웨어 변수도 업데이트하지 않으면 업데이트가 불가능합니다. 따라서 인증서를 사용하면됩니다.

불행히도 많은 시스템 공급 업체 제품에 대한 몇 가지 보안 부팅 인증서 만 포함됩니다. 공급 업체 자체 인증서 (펌웨어 업데이트 및 하드웨어 디버깅 / OEM 구성 도구 용) 및 Microsoft의 보안 부팅 인증서 만 포함됩니다. 일부 시스템에서는 보안 부팅 목록을 편집 할 수 있습니다. 펌웨어 설정 (= " BIOS 설정 ")을 통해 인증서를 제공하지만 다른 인증서는 그렇지 않습니다. 따라서 독립적 인 솔루션이 필요했습니다.

Microsoft는 누구에게나 UEFI 부트 로더 서명 서비스를 제공하지만 최소한 처음에는 서명에 소요되는 시간이 상당히 길었으므로 모든 버전의 GRUB에 직접 서명해야한다는 요구 사항이 발생했을 것입니다. 부트 로더 업데이트에서 허용 할 수없는 지연. 문제를 해결하기 위해 shim 부트 로더가 개발되었습니다. 기본적으로 보안 부팅 허용 목록에 하나 이상의 인증서를 추가하는 가장 간단한 합리적인 UEFI 프로그램입니다. 단순성으로 인해 shim 자체를 업데이트 할 필요성이 줄어들 것이기 때문에 -소스 OS 배포 (Linux 및 기타)는 Microsoft에서 서명 한 shim 버전을 한 번만 가져온 다음 공개 부분이 shim에 포함되어 있고 Secure Boot가 배포를 허용하는 자체 인증서로 모든 버전의 GRUB에 서명 할 수 있습니다. ” s 버전의 GRUB.

댓글

  • 답변 해 주셔서 감사합니다. BTW, AFAIK bootmgfw.efi는 ' nt Windows 부트 로더이며 '의 Windows 부팅 관리자입니다. Windows 부트 로더 \Windows\System32\winload.efi를 호출합니다. 또한 NVRAM의 의미는 무엇입니까? CMOS?
  • 너무 장황하지 않고 " Windows 부트 로더 " 문제에 대해 지나치게 단순화 한 것 같습니다. . 네, NVRAM이란 펌웨어 설정이 포함 된 비 휘발성 스토리지를 의미합니다. 기존 PC에서는 CMOS 메모리라고도하지만 최신 시스템에서는 실제로 CMOS (Complementary Metal Oxide Semiconductor) 이외의 일부 기술을 사용할 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다