ESP가 부팅 관리자를 호출하여 부팅 로더 로드를 시작하고 커널로 전달한 후의 프로세스를 이해할 수 없습니다.
제가 언급한 마지막 단계에서는 여기에서 NTDETECT 또는 NTOSKRNL이 호출되고 WINLOGON 또는 LTASS가 호출되는지 이해할 수 없습니다. 아니면 UEFI GPT 부팅과 다를까요?
누구든지 설명할 수 있나요?
답변1
ESP가 부팅 관리자를 호출하여 부팅 로더 로드를 시작하고 커널로 전달한 후의 프로세스를 이해할 수 없습니다.
부팅 프로세스는 ESP가 아닌 펌웨어(EFI)에 의해 수행됩니다. "ESP"는 펌웨어에서 사용하는 파일(부트로더 등)을 보관하는 파티션일 뿐입니다.
EFI 펌웨어에는 NVRAM에 설정을 저장하는 부팅 관리자가 내장되어 있습니다. 이를 통해 ESP에서 실제로 로드할 파일을 알 수 있습니다.
그러나 BOOTMGR 또는 NTLDR과 같은 것에 대해 이야기할 때 펌웨어는 실제로 부팅 관리자와 부트 로더를 구별하지 않습니다. 둘 다 펌웨어에 의해 시작되는 .efi 응용 프로그램일 뿐입니다. (또한 BIOS에서는 둘 다 동일한 종류의 부트 섹터입니다.)
응용 프로그램이 OS를 선택하는 메뉴 표시를 지원하는 경우(예: NTLDR 또는 BOOTMGR) 이를 부팅 관리자라고 합니다. WINLOAD처럼 OS 커널 자체 시작을 지원하는 경우 이를 부트 로더라고 합니다. 하지만 펌웨어에서는 여전히 동일한 유형의 프로그램입니다.
BIOS에서는 다음과 같습니다.
- 펌웨어는 NVRAM 데이터(일반적으로 "CMOS" 또는 "BIOS 설정"이라고 함)를 읽어 사용할 디스크의 MBR을 알려줍니다.
- 펌웨어는 MBR 부팅 섹터를 시작한 다음 Windows 시스템 파티션에서 BOOTMGR(Windows 부팅 관리자의 BIOS 변형)을 시작합니다.
- Windows 부팅 관리자는 BCD를 읽고 필요한 경우 메뉴를 표시한 다음 기본 Windows 파티션에서 WINLOAD.EXE(Windows 부팅 로더의 BIOS 변형)를 시작합니다.
- Windows 부트 로더는 NTOSKRNL.EXE(기본 Windows 커널)를 시작합니다.
그리고 UEFI에서는:
*.EFI
펌웨어는 NVRAM 데이터(EFI 변수)를 읽어 어떤 파일을 사용할지, 어떤 디스크에서 찾을지 알려줍니다 .- 펌웨어는 EFI 시스템 파티션에서 BOOTMGFW.EFI(Windows 부팅 관리자의 EFI 변형)를 시작합니다.
- Windows 부팅 관리자는 BCD를 읽고 필요한 경우 메뉴를 표시한 다음 기본 Windows 파티션에서 WINLOAD.EFI(Windows 부팅 로더의 EFI 변형)를 시작합니다.
- Windows 부트 로더는 NTOSKRNL.EXE(기본 Windows 커널)를 시작합니다.
둘 다 결국 동일한 커널을 시작합니다. 이후의 프로세스는 두 펌웨어 유형 모두 동일합니다. LSASS와 같은 Windows 구성 요소상관 안해EFI 모드로 부팅하든 BIOS 모드로 부팅하든 상관없이 시작될 때 펌웨어의 주요 작업은 이미 완료되었습니다.