부팅 관리자는 BIOS 및 UEFI 시스템에서 어떻게 다르게 작동합니까?

부팅 관리자는 BIOS 및 UEFI 시스템에서 어떻게 다르게 작동합니까?

온라인에서 많은 내용을 읽은 후 스타트업 관리자가 어떻게 일하는지 점점 더 혼란스러워지기 시작했습니다. 부팅 관리자(예: rEFInd)가 업데이트나 펌웨어 관련 항목이 아니라는 것을 알고 있습니다(틀린 경우 수정해 주세요). 나는 이제 다음과 같은 이해를 얻었습니다.

BIOS 시스템의 경우 BIOS 펌웨어가 컴퓨터에 있는 모든 디스크를 인식할 것으로 예상합니다(어떤 디스크의 파티션도 인식하지 못합니다). 컴퓨터에 내부 하드 드라이브와 외부 CD가 연결되어 있다고 가정합니다. 그러면 BIOS를 통해 하나를 선택하고 하드 드라이브나 CD의 MBR에 있는 부트 로더를 읽을 수 있습니다. 이제 하드 드라이브에 Windows와 Linux가 설치되어 있다고 가정합니다. 확실하지 않은 부분은 다음과 같습니다. GRUB을 부팅 관리자와 부트 로더로 모두 설치한 경우 하드 드라이브에서 부팅하기로 선택한 후 GRUB 부트 로더를 읽고 실행하여 다음을 호출한다는 의미입니까? GRUB 스타트업 매니저? 그러면 GRUB 부팅 관리자는 컴퓨터의 다양한 시스템을 인식하고 여전히 GRUB의 일부인 Windows 부트 로더 또는 Linux 부트 로더를 호출합니까?

UEFI 시스템의 경우 펌웨어는 파티션 테이블과 컴퓨터에 연결된 모든 디스크를 인식하므로 이미 부팅 관리자인 것처럼 보입니다. 따라서 EFI 시스템 파티션에 부트로더를 쓰기만 하면 펌웨어를 통해 부팅할 때 사용할 부트로더를 선택할 수 있습니다. 맞아? 그러나 UEFI 시스템에 사용할 수 있는 rEFInd와 같은 부팅 관리자가 여전히 있다는 것을 알았습니다. 펌웨어가 이미 부팅 관리자처럼 작동한다면 그것들은 무슨 소용이 있습니까? 또한 rEFInd는 펌웨어 콘텐츠로 간주됩니까, 아니면 특정 디스크의 EFI 시스템 파티션에 설치된 일부 응용 프로그램으로 간주됩니까?

답변1

기본 운영 체제가 부팅되기 전에 실행되고 다른 프로그램 시작과 관련된 모든 코드는 부트 로더입니다. 대부분의 컴퓨터와 대부분의 임베디드 장치에는 일련의 부트로더가 있습니다. ROM 또는 플래시 메모리의 코드는 플래시 메모리나 디스크 드라이브에서 다른 코드 조각을 로드하고, 그런 다음 다른 코드 조각을 로드하는 등의 작업을 수행합니다. BIOS는 부트로더(아마도 하나 있을 것임), reFInd는 부트로더, Grub은 부트로더 등입니다.

일부 부트로더는 다른 코드 조각을 로드하고 분기하는 것 외에는 아무것도 수행하지 않지만 대부분은 구성 데이터 읽기, 연결된 주변 장치 감지, 하드웨어 테스트, 장치 초기화, 스토리지 및 네트워크 장치 열거, 다음에 로드할 항목 결정, 메시지 표시 등의 다른 작업을 수행합니다. 화면에서 사용자 입력을 듣고 사용자가 시작 프로세스에 영향을 미칠 수 있도록 합니다.

부팅 관리자는 사용자가 여러 운영 체제 중에서 선택할 수 있는 방법을 포함하는 특별한 유형의 부트 로더입니다. Grub 부트 로더는 실제로 Grub 부팅 관리자를 "호출"하지 않습니다. 부팅 관리자 기능은 Grub의 한 측면입니다.

일부 PC 레거시 BIOS에는 사용자가 여러 장치 중에서 선택할 수 있는 조잡한 부팅 관리자 기능이 있습니다. 레거시 BIOS는 디스크의 처음 512바이트만 로드하고 거기에서 코드를 실행할 수 있기 때문에 제한됩니다. UEFI에는 사용자가 FAT 파티션의 파일 중에서 선택할 수 있는 더욱 강력한 부팅 관리자가 있습니다.

부트로더가 펌웨어로 간주되는지 여부는 펌웨어를 정의하는 방법에 따라 다릅니다. BIOS 및 UEFI는 "저장 장치에 설치되지 않고 컴퓨터 하드웨어와 함께 제공"된다는 정의에 따른 펌웨어이지만 reFInd 및 Grub은 그렇지 않습니다. "운영 체제 독립적"이라는 정의에 따르면 reFInd와 Grub은 모두 펌웨어입니다.

관련 정보