FSが読み取り/書き込み状態のときにファイル範囲に直接書き込むのは安全ですか?

FSが読み取り/書き込み状態のときにファイル範囲に直接書き込むのは安全ですか?

filefrag -vext4ファイルシステム内のすべてのファイルが与えられたら(を使用して)、基本ブロックデバイスからファイルの実際のオフセット+長さのリストを取得することができます。

ファイルシステムが読み書きでマウントされている場合、デバイスを開いて書き込むのは安全ですか? fsダメージは発生しますか?loopファイルシステム階層を完全に迂回して、より良いパフォーマンスを提供する代替ドライバを実装するために尋ねます。

私の記憶が正しい場合、これはスワップファイルが実装される方法です。私が言った内容に間違った部分がある場合は訂正してください。
答えはファイルシステムによって異なりますか?ファイルが突然削除され、一部のアプリケーションでこれらのオフセットを再利用するとどうなりますか?メタデータ?最後に、ファイルが再配置または類似するのを
防ぐためにファイルをロックする方法はありますか?e4defragカーネル空間のファイルが削除されるのを防ぐための最良の方法は何ですか?ファイル範囲のリストを取得するために使用できるカーネルの内部構造はありますか?

答え1

書かれた内容ならただファイルブロックに追加すると、ext4ファイルシステムが破損することはありません。しかし、コード内の特定のバグに関しては確かに大きなリスクがあります。できるファイルマッピングのみを使用する通常のループデバイスでは、発生しないファイルシステムが破損します。

問題は、ブロックデバイスに直接書き込むことが実際にパフォーマンスに影響を与えるかどうかです。

ファイルをimmutableとしてマークして、ファイルが削除されるのを防ぎますchattr +i FILENAME

関連情報