Linuxカーネル4.xで一時停止を無効にする方法

Linuxカーネル4.xで一時停止を無効にする方法

私はLinuxPBAとsedutilを介してフルディスク暗号化を使用しています(https://github.com/Drive-Trust-Alliance/sedutil)。つまり、起動時にBIOSに依存しないコードスニペットがディスクパスワードを要求します。正しい場合は、ディスクのロックが解除され、ディスクの電源を切らずにシステムが再起動し、grubが表示され、カーネルが実行され続け、distroが起動します。

この場合、一時停止するのは危険であることは既知の制限です[1] [2]。これが発生すると、データが破損します。悪いニュースは私が経験しているということです。ランダム一時停止イベント頻繁に。

一時停止は必要ありませんが、休止状態を使用します。休止状態に影響を与えずに一時停止を無効にする方法はありますか?カーネルを再コンパイルするか、起動オプションを介して...


[1] 一時停止操作はディスクの停電を引き起こします。これは、回復時にFSが暗号化されることを意味します。 Linuxは以前にマップされたセクタにアクセスしようとしますが、現在は暗号化されてデータが破損します。問題をすばやく検出し、FSを読み取り専用モードに再マウントして、追加の損傷を防ぎます。 fsck.ext4は通常、次回の再起動時に破損を修復します。しかし、私が引き起こさなかったランダムな一時停止が発生し、デバッグ/報告が困難なので、根本的な原因を特定した後、一時停止を完全に無効にしたいと思います。

[2]同様の質問:このような提案https://wiki.debian.org/Suspend#Disable_プラカード_and_hibernation不足しています。また、カーネル/ACPIに「一時停止中にディスクをシャットダウンしないでください」と言う方法がないようです(一時停止/スリープ/S3状態でSSDを終了しない可能性がありますか?)。

ベストアンサー1

カーネルの再コンパイルCONFIG_SUSPEND=nそしてCONFIG_HIBERNATION=y停止を防ぐ必要がありますが、まだ休止状態を許可する必要があります。中断はユーザースペースから要求された場合にのみ発生するため、この方法で無効にすることもできます。

また、ドライブがどのように機能するのか正確にはわかりませんが、リセットするとキーを失う可能性があるという懸念もあります。その場合、Linuxストレージスタックは応答しないデバイスをリセットすることに注意してください。たとえば、長い間不良ブロックを再試行するのに忙しい場合です。/sys/block/sd?/device/timeoutタイムアウトが設定される場所です。デフォルトは30秒です。

hdparm -Y最後に、次の方法を使用してドライブをスリープモードに切り替えることができます。デフォルトでは何もしませんが、ドライブをスリープモードではなくスタンバイモードに設定できます。これを行うと、キーは失われません。

おすすめ記事