Grub2를 사용하여 "이중 뱅크" 시작

Grub2를 사용하여 "이중 뱅크" 시작

배경: 저는 일종의 키오스크 시스템을 개발 중입니다. 시스템은 수시로 원격으로 업그레이드될 수 있으며 가능한 한 안정적으로 작동하기를 원합니다.

임베디드 시스템에서는 이중 "부팅" 세트를 사용하는 것이 일반적입니다. 예를 들어, 많은 BIOS/UEFI는 2개의 뱅크를 지원합니다. 새 펌웨어를 플래시하면 이전 펌웨어는 삭제되지 않으며 이전 펌웨어에서 부팅할 수 있는 방법이 있습니다(반드시 수동으로 수행할 필요는 없음).

이 작업을 수행하기 위해 GRUB2를 사용하고 싶습니다. 2개의 운영 체제를 설치하고 그 중 하나에서 GRUB2를 부팅하고 싶습니다. 운영 체제를 시작할 수 없거나 확인할 수 없는 경우 GRUB2는 다른 운영 체제를 시작합니다.

일반적으로 수표는 다음과 같습니다.

  • 체크섬(예: 파티션의 첫 번째 섹터에 대한 CRC32 또는 ISO 파일에 대한 CRC32)
  • 깃발/카운터.

예를 들어 GRUB2는 어딘가에 "실패한 시도" 카운터를 기록합니다. 이 카운터는 시작할 때마다 증가합니다. 운영 체제는 카운터를 찾을 수 있는 위치를 알고 있으며 부팅에 성공한 후 카운터를 다시 0으로 설정합니다. 이 카운터가 5를 초과하면 GRUB2는 다른 운영 체제로 전환합니다.

세 번째 운영 체제를 추가하면(원격 복구 도구로만) 시나리오가 더 복잡해질 수 있습니다.

다른 제안(다른 부트로더를 사용하든, 다른 방법을 사용하든...)을 받아들일 수 있지만 보안 부팅이 가능해야 합니다.

관련 정보