Armadilloフォーラム

rc-updateで無限ループが発生した際の対処法

fukada_akira

2025年3月4日 9時08分

電源起動時の動作としてあるサービスをrc-updateをdefaultレベルにして実行したところ、
サービスとして登録してあるものにバグがあり無限ループするようになりました。

この状態になるとコマンドを入力できる画面に移行できずに電源を再び切ることくらいしかできなくなってしまいます(電源を入れると再び無限ループ)。
一応U-bootは起動できることは確認できているのですが、電源起動時のサービスを中断する方法などはございませんでしょうか?

コメント

at_dominique.m…

2025年3月4日 9時27分

fukada_akiraさん

お世話になっています、
マルティネです。

(製品は Armadillo-IoT A6 として登録されてますが、A6E ですね)

> この状態になるとコマンドを入力できる画面に移行できずに電源を再び切ることくらいしかできなくなってしまいます(電源を入れると再び無限ループ)。
> 一応U-bootは起動できることは確認できているのですが、電源起動時のサービスを中断する方法などはございませんでしょうか?

具体的に発生している問題は把握してませんが、openrc のデフォルト設定ではサービスが60秒以内に起動できなかった場合は諦めるはずですが、そうなってないですね?

U-boot のプロンプトが有効のままでしたら、キー入力かボタン押しで「=>」プロンプトに入って、「setenv optargs init=/bin/sh」等で openrc が実行されないように設定しておいて「boot」で linux を起動すると何でも変更できますので、それで回復は可能です。
(そのため、セキュリティガイドラインとしては bootdelay を -2 に設定することを推奨しています https://manual.atmark-techno.com/armadillo-iot-a6e/armadillo-iotg-a6e_p… )

u-boot のプロンプトが無効化されている場合は SD カードで起動して修正することも可能です。
(SDブートも無効化されていた場合は、もうどうしようもないかな… swupdate で不具合を起こした場合は rollback できるかもしれませんが、手動の変更の場合は rollback が有効されないので、上記の復帰方法しか思いあたりません)

よろしくお願いします。

マルティネ様

ご返信ありがとうございます。いわれた通りの方法で復帰ができました。
ありがとうございます!