ブロックはファイルシステムによって提供される抽象化であり、ブロックサイズはディスクセクタサイズの整数倍である。ファイルシステムがブロックサイズとして4Kを使用し、ディスクセクタサイズが512Bであるとします。ファイルシステムがディスクドライバに書き込み要求を送信すると、4Kブロック全体をディスクにアトミックに書き込む方法(部分書き込み防止) 私は最新のカーネルがこの問題をどのように解決するかを知りたいのですが、答えを見つけるためにLinuxコードベースを掘り下げたくありません。どんな助けでも大変感謝します。
ベストアンサー1
ディスクは許可する必要があります部門原子的に作成します。セクタサイズは512バイトですが、今日のより大きなディスクは通常4096バイトです。
部分的に作成された「チャンク」による問題を回避するには、すべてを特定の順序で作成することが重要です。
唯一の理由は次のとおりです。部分的に書かれたファイルシステムの一部に電力が供給されていません。
方法は次のとおりです
まず、すべてのファイルの内容を作成し、これが機能していることを確認してください。
その後、メタデータを作成し、メタデータのすべてのデータ構造が単一のディスクセクタに入り、セクタ境界を超えないようにします。たとえば、ディレクトリの内容である可変長ファイル名の場合、これは重要です。