h-yuusuke
2022年3月7日 13時54分
お世話になっております。
掲題の件に関しまして、BaseOSを起動したのがA面/B面のどちらで起動したのかを、ログ等確認する手段はありますでしょうか?
また、A面/B面を切り替える判断条件は何でしょうか?
コメント
h-yuusuke
at_dominique.m…
h-yuusukeさん、
お世話なっています。マルティネです。
> ・OS切替について、A面からB面に切り替えた後、再度切替条件が満たした場合、A面切替しますでしょうか?
> A面→B面→A面の切り替えイメージです。
はい、なぜかB面も起動不可能になっていたら永遠にA->B->A->B...を順番で試して繰り替えます。
例えば、10回に一同起動できるようなアップデートが入ったら何回か繰り替えした後にどちらかの面で起動できるように、どちらもの面を永遠に繰り返す仕組みになっています。
一応A面の書き込みができたので、B面でいずれ起動できることを期待しています…
どちらも起動できなかったら、SDカードでリカバリーが可能になっていますが、その場合はリモートではどうにもならないので、起動できるように頑張らせてもらいます。
よろしくお願いします。
at_dominique.m…
2022年3月7日 16時47分
h-yuusukeさん、
お世話になっています。マルティネです。
> 掲題の件に関しまして、BaseOSを起動したのがA面/B面のどちらで起動したのかを、ログ等確認する手段はありますでしょうか?
現在のA面かB面かは swupdate -g コマンドで確認とれます。
プログラムに組み込む機能であれば、/proc/cmdline の root= 部分を見てください。
毎回どちらで起動したかのようなログはありません。切り替えるタイミングのログも今のところは少ない方だと思っていて、ロールバックするときでさえログを残していないので今度の課題だと思っています。
申し訳ありませんが、今のところはログに頼らないで自分で確認してください。
> また、A面/B面を切り替える判断条件は何でしょうか?
現在のバージョンでは、切り替えの条件は二つだけです:
- アップデートする際には再起動して必ず切り替えます。(オプションとして、POST_ACTION=containerでのコンテナのみのアップデートでは再起動なしで切り替えなしもできますが、デフォルトで使っていません)
- 起動を失敗したときに切り替えます:カーネルをロードできなかった場合にすぐ切り替えます。カーネルがロードしたが、ユーザースペースにたどり着かなかった場合には3回後に切り替えます。(起動中に電源を切っていたらこの条件を満たせますので、すぐには切り替えません)
今後のバージョンではユーザーが自分でアップデート後の状態を確認取れる方法を追加する予定なので、そこで自分で切り替える方法も、すでにロールバックしたかどうかの確認する方法も用意します。
お手数ですが、頼れない実装をしたくないのでできるまでもうすこしお待ちください。
よろしくお願いします。