ファイルの内容は常に連続して保存されますか?

ファイルの内容は常に連続して保存されますか?

外部ファイルシステムでは

  1. ファイルの内容は常に連続して保存されますか?それとも、ファイルの内容を複数の部分に分割して各部分を連続的に保存し、すべての部分を非連続的に保存することはできますか? (ファイルの内容の保存は対応するinodeで指します。)
  2. inodeには、ファイルの内容を指す複数の直接および間接ポインタがあります。ポインタはファイルの内容内の他の場所を指すので、ファイルの内容はどのように「ランダムに」アクセスされますか?

ありがとうございます。

ベストアンサー1

習慣。ファイルが常に連続して保存されるわけではありません。不連続リポジトリには実際に「断片化」という名前があります。なぜなら、ファイルの個々に格納された各部分は「断片」であるからである。そうしないと、ファイルを最大連続空き容量より大きくすることができないため、これは必須です。そして、ファイルに追加する操作は通常失敗します(または移動するにはファイル全体を再作成する必要があります)。

inodeフィールドは、「ブロック10,000で始まるバイト0~1048575」、「ブロック300で始まるバイト1048576~2097152」などを意味する。 inodeのサイズは固定されているため、保持できるフラグメントの数は制限されています。 inodeに保存されます。より多くのフラグメントが必要な場合、inodeは他のブロックへのポインタを格納します。

inodeがフラグメントを直接指している場合、これは直接ポインタです。
フラグメントが inode の外部に保存されている場合、これは間接ポインタです。

SANSに関するデジタルフォレンジック記事図の説明がよくできています。これもこうだウィキペディア記事。 ext4の範囲は再び異なる動作をします。SANSに関する記事

おすすめ記事