GRUB2: "nativedisk" 및 "chainloader" 명령

GRUB2: "nativedisk" 및 "chainloader" 명령

~에서문서알아요:

Chain-loading is only supported on PC BIOS and EFI platforms.

nativedisk명령을 통해 기본 드라이버(명령에서 제공)를 사용할 수 있습니까 chainloader? 그렇지 않다면 왜 그렇습니까? 이 기능은 아직 구현되지 않았거나 이론적으로 불가능합니까?

답변1

내가 아는 한, 이 두 기능은 서로 독립적입니다.

nativedisk이는 GRUB가 디스크에 액세스하는 방법 중 하나일 뿐입니다. 그러나 펌웨어가 연결된 부트로더가 있는 디스크에 대한 액세스를 지원하지 않으면 연결된 두 번째 부트로더도 자체 드라이버를 포함해야 합니다. 그렇지 않으면 자체적으로 부팅 프로세스를 계속하지 못할 수 있습니다. 외부 도움 없이 디스크에서 로드되었으므로 액세스할 수 없습니다. (두 번째 부트 로더가 GRUB 드라이버에 의존하는 경우 이는 실제 체인 로드가 아니라 GRUB용 추가 모듈과 비슷합니다.)

체인 로딩을 지원하려면 GRUB가 펌웨어와 정확히 동일한 방식으로 체인 부트 로더를 로드할 수 있어야 합니다. PC BIOS의 경우 로드된 코드를 알려진 메모리 주소에 복사하고 해당 주소로 점프하면 됩니다. EFI의 경우 EFI 부팅 서비스는 필요한 기능을 제공합니다. 기본적으로 GRUB2는 EFI 펌웨어에 "나 대신 이 파일을 실행해 주세요"라고 알려주면 펌웨어가 이를 수행합니다.

다른 아키텍처에서는 펌웨어가 GRUB 로딩 중에 쉽게 실행 취소할 수 없는 작업을 수행할 수 있습니다. 아니면 다른 아키텍처에 대한 체인 로딩 지원을 추가하는 것이 아직 필요하지 않을 수도 있습니다.

새로운 아키텍처에 대한 체인 로딩을 구현할 때 펌웨어가 수행하는 작업을 이해하고 복제해야 합니다. 일반적으로 펌웨어는 부트로더가 부팅하는 하드웨어에 대한 일부 정보를 부트로더에 제공합니다. 펌웨어가 수행할 수 없는 기능을 확장하기 위해 GRUB nativedisk드라이버를 사용하는 경우 문제가 발생할 수 있습니다. 펌웨어가 필요한 부팅 정보를 제공할 수 없는 경우 체인 로딩 루틴이 부트로더를 체인 로딩할 수 있습니까? 이 모든 것은 플랫폼마다 다릅니다. 한 플랫폼에서는 가능하지만 다른 플랫폼에서는 불가능할 수도 있습니다.

관련 정보