2

私が取り組んでいる組み込みアプリケーションがあります。このイメージのデータを保護するために、そのパーティションは RO でマウントされます (これは、電源が予期せず失われた場合のフラッシュ エラーを防ぐのに役立ちます。クリーン シャットダウンを保証できないため、プラグを抜くことができます)

保護する必要がある私が作業しているアプリケーションは、この RO パーティションに常駐していますが、このプログラムは、同じ RO ファイル システム上の構成ファイルも変更できる必要があります。必要に応じてこのパーティション RW を再マウントできるコードがありますが (ファームウェアの更新など)、読み取り専用パーティションから実行されているすべてのプロセスを停止する必要があります (つまり、my_application を killall します)。したがって、アプリケーションが最初に自分自身を殺さずに、変更する必要があるパーティションを再マウントすることはできません (どちらがニワトリでどちらが卵かはわかりませんが、要点はわかります)。

バイナリ全体が RAM に保持され、実行元のパーティションへのリンクがなく、マウント解除でパーティションがビジーと報告されるような方法でアプリケーションを起動する方法はありますか?

または、最初に実行中のプロセスを強制終了せずに、この RO パーティションを安全に再マウントする方法はありますか?

4

1 に答える 1

0

これを tmpfs ファイルシステムにコピーして、そこから実行できます。tmpfs ファイルシステムは、すべてのデータを RAM に保存し、場合によっては SWAP パーティションに保存します。

-oremount フラグをマウントに渡すことも機能するはずです。

于 2014-08-03T06:56:18.293 に答える