悪い `rm`でファイルを保存した後、マシンの電源を切るのはなぜですか?
古典的な状況:私は悪い実行し、rmすぐに間違ったファイルを削除したことを実現しました。(重要なことは何もありませんでしたが、最近のバックアップは許容範囲内でしたが、まだ迷惑です。) extundeleteまたはそのようなツールを使用してファイルを回復したい場合、さらなるディスクアクティビティが敵であることがわかったので、すぐに物理的にマシンの電源を切りました(つまり、haltコマンドではなく、電源ボタンで)。これは重要なタスクが実行されていない、または何も開いていないラップトップであるため、許容できる操作でした。(ところで、そのような状況で最初にすることは、プロセスhttps://unix.stackexchange.com/a/101247によって見つからないファイルがまだ開かれている可能性がある場合、最初に推定することであることをその後学びました-存在する場合、マシンの電源を切るのではなく、この方法で回復する必要があります。) それでも、マシンの電源を切った後、しばらく考えて、ファイルが適切なフォレンジックのためにライブシステムを起動する時間投資に見合わないと判断しました。そこで、マシンの電源を入れました。そして、ファイルがまだディスクに残っていることを発見しましrmた。電源を切る前にファイルがディスクに伝播されていませんでした。私は少しダンスをし、システム管理者の神に彼の予期せぬ許しに感謝しました。 私の質問は、これがどのように可能だったか、そしてrm実際にディスクに伝播されるまでの典型的な遅延とは何かを理解することです。ディスクIOはすぐにはフラッシュされず、しばらくの間メモリ内に置かれることはわかっていますが、ディスクジャーナルにより、保留中の操作が完全に失われないようにすばやく確認できると考えました。https://unix.stackexchange.com/a/78766は、ダーティページをフラッシュし、ジャーナル操作をフラッシュする別のメカニズムを示唆しているように見えますが、ジャーナルがa rmにどのように関与するかについての十分な詳細と、操作がフラッシュされます。 いくつかの詳細:データはLUKSボリューム内のext4パーティションにあり、マシンを起動してバックアップしたとき、次のことがわかりましたsyslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: [ 11.458393] EXT4-fs (dm-0): recovery complete Sep 24 10:24:58 gamma kernel: [ 11.482475] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null) しかし、私はそれがに関連していると確信していませんrm。 別の質問は、マシンの電源を落とすのではなく、保留中のディスク操作を実行しないようにカーネルに指示する方法があるかどうかです(ただし、どこかにダンプするなど)。(もちろん、保留中の操作を実行しないのは危険に思えますが、これはとにかくマシンの電源を切ったときに起こることであり、場合によってはそれがあなたを救う可能性があります。)たとえば、物理的な電源切断が簡単なオプションではないリモートサーバーの場合。