私の理解は、ディレクトリinodeが通常のファイルinodeと根本的に異なっていないことです。Ext4ディスクレイアウトそれだけです:
ディレクトリエントリ:したがって、ディレクトリは一連のデータブロックであり、各ブロックはディレクトリエントリの線形配列を含むと言う方が正確です。
ディレクトリエントリは、ファイル名とそのインデックスノードへのポインタを格納します。それでは、ドキュメントに各ブロックにディレクトリエントリが含まれていることがわかりますが、debugfs
ディレクトリinodeに保存されているファイル名とは異なる内容を報告するのはなぜですか?これは ext4 形式のフラッシュドライブのデバッグセッションです。
debugfs: cat /sub
�
.
..�
spam�spam2�spam3��spam4
これらのファイル名を保存することは不可能だと思い、inode_i_block
60バイトを超える非常に長いファイル名でファイルを作成しました。cat
inodeで実行するとdebugfs
ファイル名も表示されるため、長いファイル名がinodeに再び表示されます。
inode.i_block
60バイトのストレージスペースは、inodeで説明されているファイルタイプに応じてさまざまな方法で使用できます。通常、通常のファイルやディレクトリではファイルブロックインデックス情報として使用し、特殊ファイルでは特別な目的に使用します。
また、ファイル名が格納されているinodeへの参照はありません。 ハッシュツリーディレクトリ これは最新の実装部分です。そのファイルに何か欠けているような気がします。
主な質問は、ディレクトリ内のinodeにファイル名が含まれている場合は、そのデータブロックに何を格納するかです。
ベストアンサー1
inode.i_block
ディレクトリエントリはデータブロックに保存されます。リンクしたドキュメントの「インラインデータ」と「インライン目次」を参照してください。