A/B デュアルシステムは JelinaOS の信頼性の中核です。カーネルとシステムをそれぞれ完全な 2 コピーで保持し、一方で稼働しながら他方へ更新を書き込みます。このページでは日常運用に関わる操作を説明します。
現在の起動パーティションの確認
Section titled “現在の起動パーティションの確認”jelina-info出力で現在の起動パーティション(A または B)とシステムの健全性を確認します。デバイスは常に一方のシステムで動作し、もう一方をバックアップとして保持します。
システムの切り替え方法
Section titled “システムの切り替え方法”現在稼働中 System A │ ▼ 更新を System B へ書き込み ▼ 再起動後に B へ自動切り替え ▼ 起動時検証通过 → 稼働を継続 B │ ▼ 検証失敗 → A へ自動復帰(業務への影響なし)- 切り替えは自動で行われ、人の介入は不要です。
- 2 つのシステムは相互のバックアップで、どちらも出荷時の状態です。
- 稼働中のユーザー書き込みはすべてデータパーティションに入り、切り替えから独立しています。
更新とロールバック
Section titled “更新とロールバック”- システム更新から更新を開始します。
- デバイスの稼働を継続しながら、予備パーティションへ書き込みます。
- 再起動後、新しいシステムへ自動で切り替えて検証します。
ロールバック
Section titled “ロールバック”新しいバージョンに問題があり、元に戻す場合:
- システム更新機構で、前のバージョンへのロールバックを指定します。
- 元のパーティションへ切り替えて検証します。
- デバイスが正常稼働に戻ります。
システムのロールバックサービスを使用して手動で戻すこともできます。root/kernel のロールバックは再起動後に有効となり、アプリケーション領域のロールバックは直ちに有効となります。
systemctl restart jelina-rollback@root # システムパーティションをロールバック(再起動で有効)systemctl restart jelina-rollback@kernel # カーネルパーティションをロールバック(再起動で有効)systemctl restart jelina-rollback@app # アプリ領域をロールバック(即時有効)systemctl restart jelina-rollback@adv # コンポーネント領域をロールバック(即時有効)実行前に、現在の実際のマウント状態と設定の一致を検証し、重複操作を防止します。
起動カウントと段階的な復旧
Section titled “起動カウントと段階的な復旧”**起動カウント(bootcount)**で起動状態を追跡し、段階的な自動復旧を実現します。
- 起動のたびにカウントを増やし、正常起動が成功すると自動でゼロに戻します。
- クラッシュ、電源断、ウォッチドッグ再起動などで失敗した場合は、カウントが増え続けます。
- 起動に連続して失敗すると、復旧処理へ移行します。まず復旧起動を試み、それでも失敗する場合はシステム、カーネルの順にパーティションをロールバックします。
- 復旧後は通常起動に戻り、カウントをリセットします。
この仕組みにより、アップグレードや障害による再起動ループを防止し、使用可能な状態へ自動で戻します。
起動時の検証機構
Section titled “起動時の検証機構”起動のたびに現在のパーティションを検証します。
- 検証成功:通常どおりシステムを起動します。
- 検証失敗:もう一方のシステムを自動で試し、使用可能な状態を確保します。
起動して使用でき、故障時に戻せる仕組みが、無人運用での信頼性を支えます。
よくある質問
Section titled “よくある質問”現在どちらのパーティションで動作しているか確認するには
jelina-info を実行し、起動パーティション情報を確認します。
2 つのパーティションの内容は同期されますか。 いいえ。各システムは出荷時の状態を保持し、ユーザーデータはデータパーティションに集約します。バージョンの関係はシステム更新機構で管理します。
起動パーティションを手動で選択できますか。
通常は自動管理されるため手動選択は不要です。特殊な保守作業では、プラットフォームの起動管理機能を使用できます。Rockchip には jelina-rk-bootctl が用意されています。詳細はコマンドのヘルプを参照してください。