GRUB이 사용할 수 있는 최대 디스크 크기는 얼마입니까?

GRUB이 사용할 수 있는 최대 디스크 크기는 얼마입니까?

버그/특이점이 없고 섹터 크기가 512이고 LBA48 주소가 지정되고 향상된 디스크 드라이브를 지원하는 상당히 현대적인 BIOS(2005-)를 가정해 보겠습니다.

요청하는 이유는 INT 13h 확장 읽기 호출을 통한 단순 읽기의 경우 오프셋 섹터가 사용 가능한 디스크보다 8ZiB 더 크고 LBA48 주소 지정 범위를 벗어나기 때문입니다. 하지만 더 작은 제한 사항에 대한 참조만 찾았는데 GRUB이 실제로 무엇을 지원할 수 있을까요?

boot.img/diskboot.img에서 사용되는 차단 목록은 어떤 크기 필드로 구성됩니까?

답변1

GNU GRUB(라고도 함 grub2) 차단 목록 항목에는 LBA 번호에 대한 64비트( ) 필드가 있으므로 uint64_t8바이트 값을 저장할 수 있습니다. 그러나 대부분의 경우 제한 요소는 BIOS INT13h 확장 읽기 루틴이 허용하는 것입니다. 기본 하드웨어 제한이 LBA48인 경우 제한은 2^48 블록이 되며, 이는 512바이트 블록 크기에서 128PiB까지 작동합니다. 또는 약 144페타바이트입니다.

GRUB 레거시(GRUB 0.9x)에 대해 이야기하는 경우 해당 블록 목록은 32비트( uint32_t) LBA 값만 보유할 수 있습니다.

펌웨어 디스크 액세스 API가 9.4ZB로 제한되고 grubx64.efiUUID로 식별된 GPT 파티션에서 특별히 명명된 파일만 로드하도록 펌웨어에 지시할 수 있는 UEFI 시스템에서는 GRUB의 제한 사항이 전혀 적용되지 않을 수 있습니다. 물론, 펌웨어가 지원하지 않는 파일 시스템 유형을 사용하는 경우 해당 크기의 파일 시스템을 지원할 수 있는 GRUB의 파일 시스템 드라이버에 의존해야 합니다. :-)

관련 정보