Grub2を使用して「デュアルバンク」を開始

Grub2を使用して「デュアルバンク」を開始

背景:私は一種のキオスクシステムを開発しています。システムは頻繁にリモートでアップグレードすることができ、できるだけ安定して動作することを望んでいます。

組み込みシステムでは、デュアル「ブート」セットを使用するのが一般的です。たとえば、多くのBIOS / UEFIは2つのバンクをサポートしています。新しいファームウェアをフラッシュすると、古いファームウェアは削除されず、古いファームウェアから起動する方法があります(必ずしも手動で実行する必要はありません)。

これを行うためにGRUB2を使用したいと思います。 2つのオペレーティングシステムをインストールし、そのうちの1つからGRUB2を起動したいと思います。オペレーティングシステムを起動できないか確認できない場合、GRUB2は他のオペレーティングシステムを起動します。

通常、小切手は次のとおりです。

  • チェックサム(例えば、パーティションの最初のセクターのCRC32またはISOファイルのCRC32)
  • 旗/カウンター。

たとえば、GRUB2はどこかに「失敗した試み」カウンタを記録します。このカウンタは起動するたびに増加します。オペレーティングシステムはカウンタが見つかる場所を知っており、起動に成功した後にカウンタを0に戻します。このカウンタが5を超えると、GRUB2は他のオペレーティングシステムに切り替えます。

3番目のオペレーティングシステムを追加すると(リモートリカバリツールのみ)、シナリオがより複雑になる可能性があります。

他の提案(他のブートローダを使用するか、他の方法を使用するか)を受け入れることができますが、セキュアブートが可能である必要があります。

関連情報