起動開始失敗の処理(Debian)

起動開始失敗の処理(Debian)

512MBのRAMと4GBの内部ストレージを備えた内蔵デバイスがあります。 (ラズベリーパイナビーグルボンを考えてみてください)

3つのパーティションを持つ外部SDカードがあります。

mmcblk0ディスクで、mmcblk0p1その上に3つのパーティションmmcblk0p2があります。mmcblk0p3

mmcblk0p2また、mmcblk0p3各パーティションにはDebianオペレーティングシステムがあります。

mmcblk0p2アクティブパーティションmmcblk0p3と同時にバックアップパーティションとして使用されます。

私はu bootが最初のパーティションの動作を好むことに気づきました。パーティションからuEnv.txtを読み、それに応じて起動します。

したがって、パーティションにはmmcblk0p1uboot設定があります。 (uEnv.txtおよび起動に必要なその他のファイル)

変更の始まり構成を使用していますuEnv.txt。つまり、起動したい場合は、次のことをmmcblk0p3提供できます。

mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=/dev/mmcblk0p3 rootfstype=${mmcrootfstype} ${cmdline}

内部にuEnv.txt

uEnv.txt障害が原因でパーティションが破損したり、パーティションが破損した場合、デバイスはいずれかのパーティションから起動できません。 (例:オペレーティングシステム)

uEnv.txtアクティブパーティションが破損した場合、再起動時に他のパーティションからどのように起動できますか?このトピックに関連する利用可能なリンクまたはリソースを共有できれば良いでしょう。つまり、この状況をどのように処理するのですか?

答え1

独自のOTAを最初から実装する場合はそうです。他の既存のOTAメカニズムがそれをどのように処理するかを理解する必要があります。これは通常、更新があるかどうかを確認するためにフラグの組み合わせを使用するためです。それを更新します。

関連情報