GRUB는 MBR 디스크에서 /boot 파티션을 어떻게 찾나요?

GRUB는 MBR 디스크에서 /boot 파티션을 어떻게 찾나요?

지금까지 찾은 내용(정확하지 않을 수 있음):

  • boot.imgGRUB는 디스크의 첫 번째 섹터(MBR)에 설치됩니다 .

  • core.imgGRUB은 MBR 뒤의 틈새에 설치됩니다 .

  • boot.imgBIOS에 의해 로드된 다음 로드되어 core.img제어권을 전달합니다.

하지만 다음 파티션을 core.img찾는 방법은 무엇입니까? /boot디스크에 여러 개의 파티션이 있을 수 있는데 코어 이미지는 어떤 파티션을 올바르게 식별합니까 /boot? 이것이 핵심 이미지에 하드코딩되어 있습니까? 아니면 매번 검색이 수행됩니까?

다른 연구에 따르면 GRUB를 설치할 위치를 선택할 수 있는 --boot-directory옵션이 있습니다 . grub-install그러나 코어 이미지는 여전히 부팅 시 이 파티션을 찾아야 합니다. 다시 말하지만 어떤 형태의 식별자가 필요합니다. 이것은 레이블입니까, UUID입니까, 아니면 다른 것입니까?

답변1

주소는 에 하드코딩되어 있습니다 core.img. core.img파일 경로를 통해 2단계 모듈을 호출하는 데 필요한 모든 커널 및 Grub 모듈이 있어야 합니다. 로 지정합니다 (hd0,msdos1)/boot/grub. 기본적으로 normal모듈 로드를 시도합니다 (hd0,msdos1)/boot/grub/i386-pc/normal.mod(i386-pc 아치 가정).

자세한 내용은 여기를 참조하세요.

관련 정보