M. TimJonesによるLinuxファイルシステムの構造に関する記事から、Linuxはすべてのファイルシステムを共通のオブジェクトセットの観点から表示し、これらのオブジェクトはスーパーブロックであると読みました。 、 iノード 、 dentry およびファイル 。段落の残りの部分で上記を説明していますが、私はその説明にそれほど満足していませんでした。
誰かが私にこれらの用語を説明してもらえますか?
承認された回答:
何よりもまず、それはあなたの質問の用語の1つではなかったことに気づきました。あなたは、メタデータを理解する必要があります。 。簡潔に言えば、ウィキペディアから盗まれたメタデータは、データに関するデータです。つまり、メタデータにはデータの一部に関する情報が含まれています。たとえば、私が車を所有している場合、その車に関する一連の情報がありますが、それは車自体の一部ではありません。登録番号、メーカー、モデル、製造年、保険情報などの情報。そのすべての情報は、まとめてメタデータと呼ばれます。 LinuxおよびUNIXのファイルシステムでは、メタデータは組織の複数のレベルに存在します。
スーパーブロック は本質的にファイルシステムメタデータであり、ファイルシステムのタイプ、サイズ、ステータス、および他のメタデータ構造(メタデータのメタデータ)に関する情報を定義します。スーパーブロックはファイルシステムにとって非常に重要であるため、ファイルシステムごとに複数の冗長コピーに保存されます。スーパーブロックは、ファイルシステムの非常に「高レベル」のメタデータ構造です。たとえば、パーティションのスーパーブロック/ varが破損した場合、問題のファイルシステム(/ var)をオペレーティングシステムでマウントできなくなります。通常、このイベントでは、fsck
を実行する必要があります これにより、スーパーブロックの代替バックアップコピーが自動的に選択され、ファイルシステムの回復が試行されます。バックアップコピー自体はファイルシステム全体に分散されたブロックグループに保存され、最初のコピーはパーティションの先頭から1ブロックオフセットして保存されます。これは、手動での回復が必要な場合に重要です。コマンドdumpe2fs /dev/foo | grep -i superblock
これは、手動で回復を試みた場合に役立ちます。 dumpe2fsコマンドがBackup superblock at 163840, Group descriptors at 163841-163841
という行を出力するとします。 。この情報とファイルシステム構造に関する追加の知識を使用して、このスーパーブロックバックアップの使用を試みることができます。/sbin/fsck.ext3 -b 163840 -B 1024 /dev/foo
。この例では、ブロックサイズを1024バイトと想定していることに注意してください。
iノード ファイルシステム内またはファイルシステム上に存在し、ファイルに関するメタデータを表します。わかりやすくするために、LinuxまたはUNIXシステムのすべてのオブジェクトはファイルです。実際のファイル、ディレクトリ、デバイスなど。 iノードに含まれるメタデータの中には、人間が考えるようなファイル名がないことに注意してください。これは後で重要になります。 iノードには、基本的に、所有権(ユーザー、グループ)、アクセスモード(読み取り、書き込み、実行権限)、ファイルタイプ、およびファイルのコンテンツを含むデータブロックに関する情報が含まれています。
関連:Awkのみを使用して-f出力を色でテールし、残りの出力を表示するにはどうすればよいですか?dentry iノード番号をファイル名に関連付けることにより、iノードとファイルをまとめる接着剤です。デントリーはディレクトリキャッシングでも役割を果たし、理想的には、最も頻繁に使用されるファイルを手元に置いて、より高速にアクセスできるようにします。ファイルシステムトラバーサルは、ディレクトリとそのファイル間の関係を維持するため、dentryのもう1つの側面です。
ファイル 、単語が提示されたときに人間が通常考えるものであることに加えて、実際には論理的に関連する任意のデータのブロックにすぎません。それらを追跡するために行われた(上記の)すべての作業を考慮すると、比較的非常に鈍いです。
いくつかの文章ではこれらの概念の完全な説明が提供されていないことを十分に理解しています。必要に応じて、追加の詳細をお気軽にお問い合わせください。