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은 펌웨어입니다.

관련 정보