USB接続を介してマウントされたルートファイルシステムを備えた小さな組み込みLinuxデバイスがあります。
デバイスはリセットをうまく処理します(起動時にUSBディスクを取り外すと、USBディスクが到着するのを待ちます)。
しかし、ディスクが取り外されると、デバイスが挟まれる傾向があります。ただリセットされることを願っています。
メインディスクが消えたらカーネルをリセットするカーネルオプションはありますか?
答え1
それは簡単です。
デバイスのUSB分離イベント時に実行されるudevルールを作成する必要があります。これらはですetc/udev/rules.d
。この問題は ServerFault で終了します。もっと学ぶ。
そこで、キーワードを使用してUSB分離イベントで任意のコマンドを実行できることを確立しましたPROGRAM
。
2番目の部分は、「魔法の」sysrqキーを使用することです。バラよりMagic SysRqに関するWikipediaの記事sysrqキーを使用して実行できる操作。キーはアクション文字をエコーすることでトリガーすることもできます/proc/sysrq-trigger
。これは、物理的に接続されたキーボードでキーの組み合わせを押すのと同じ効果があります。
したがって、udevルールは次のようになります。
DRIVER="some_device", ACTION="remove", PROGRAM="/bin/echo b > /proc/sysrq-trigger"
some_device
デバイスが削除されると、システムの再起動がトリガされます。
もちろん、これは「ウェッジ」が「カーネルパニック」を意味しないと仮定する。