rootfsが利用できないときにLinuxベースのデバイスを再起動する方法は?
ソフトウェアウォッチドッグのみ使用できます。
問題はrootfsがスレーブラであることですNFS
。 NFS サーバーを停止すると、デバイスがブロックされます。再起動したいです。この目標をどのように達成できますか?
つまり、rootfsに問題があります。カーネルレベルでシステム全体をリセットできるものはありますか?開いているか破損したファイルやリソースには興味がありません。
注:このアーキテクチャのカーネルソースコードはありません。このデバイスにはヘッドレスデバイスがあり、モニターやキーボードは接続されていません。ルートコンソールがありますagetty
(で定義されています/etc/inittab
)。
答え1
物理的なキーボードが接続されているかどうかは言っていませんでしたが、そうであれば「魔法のSysRqキー」役に立つかもしれません。あなたの場合
- Alt+ SysRq+Sディスクへの緊急同期用
- Alt+ SysRq+B今再起動
仕事をしなければなりません。これを機能させるには、これらのキーの組み合わせを無効にしないでください。/proc/sys/kernel/sysrq
許可されているSysRq-ActionsのORedビットマスクの設定を参照してください(コピー:ここ):
2 = 0x2 - enable control of console logging level
4 = 0x4 - enable control of keyboard (SAK, unraw)
8 = 0x8 - enable debugging dumps of processes etc.
16 = 0x10 - enable sync command
32 = 0x20 - enable remount read-only
64 = 0x40 - enable signalling of processes (term, kill, oom-kill)
128 = 0x80 - allow reboot/poweroff
256 = 0x100 - allow nicing of all RT tasks
以下を作成して、シェルスクリプト/プログラムでこの操作をトリガーすることもできます/proc/sysrq-trigger
。
echo "b" > /proc/sysrq-trigger
/proc/sys/kernel/sysrq
これは、キーボードによって発生したSysRqイベントのみを制限する設定に関係なく機能します。
答え2
onerror=panic
NFSルートファイルシステムのマウントオプションが必要なように聞こえますが、NFSで動作しているかどうかはわかりません。 NFS 固有のマウントオプションを使用して、NFS ルートファイルシステムをマウントしてsoft
永久に試みるのではなく、タイムアウトしてエラーを返すようにすることもできます。
メモ:インストールsoft
オプションによってファイルが破損したり、データが失われる可能性がありますが、あなたの意見ではそれを気にしないことを明らかにしました。
試してみる価値がありますか?