Linux iノードはどのように機能しますか?
Linuxを十分に長く使用している場合は、「iノード」という用語が表示されます。たまに表示されるものですが、実行していることに影響はありません。ここでは、iノードとは何か、およびそれがどのように機能するかを説明します。
iノードとは何ですか?
図書館では、すべての本がジャンル、著者名、または聴衆の年齢層別に整理されています。 「BobbyDaniels」でスリラーを見つけたい場合は、スリラーセクションに直接歩いて行き、「B」で始まる著者名を見つけ始めます。ライブラリと同じように、Linuxシステム内のすべてのファイルは、効率的な取得と使用のために編成されています。 iノードは、Linuxシステム内のファイルの配置を支援するエンティティです。
ファイルメタデータとは何ですか?
データ「hello」を含む「sample.txt」というファイルがあるとします。
このファイルには、ファイルサイズ、権限、ユーザーとグループの所有権、作成/アクセス/変更のタイムスタンプ、リンクカウントなど、関連するデータと情報が含まれています。これらの情報はすべて、まとめてファイルメタデータと呼ばれます。
ファイルシステムとは何ですか?
ハードドライブなどのストレージデバイスでは、パーティションはファイルストレージに使用される前にファイルシステムとしてフォーマットされます。ファイルシステムは、ハードドライブのライブラリアンです。正式には、これはデータ構造とアルゴリズムのセットであり、ファイルをパーティションに系統的に格納するために連携して機能します。
Linuxシステムのパーティションは、EXT4でフォーマットされることがよくあります。 B-Treeファイルシステム(BTRFS)、Reiserファイルシステム、ZFSなどの他のファイルシステムも使用できます。
それらをすべて結び付ける
iノードはExt4のデータ構造であり、ファイルのすべてのメタデータを保持します。
もちろん、ファイルシステムには多数のファイルがあります。ご想像のとおり、すべてのファイルには独自のiノードがあります。 iノードを一意に識別するために、各iノードには番号が付けられています。
iノードの番号付けはどのようになりますか?
ファイルシステムのiノード番号は1から始まります。最初の10個のiノードはシステム用に予約されています。ユーザーファイルのメタデータはiノード11から保存されます。すべてのiノードは、iノードテーブルにきちんと積み重ねられています。
iノードテーブルの1つのエントリは、サイズが256バイトになります。ファイルの場合、Linuxはすべてのメタデータを256バイト以内にインテリジェントに整理します。さらに、ファイルのiノードには、ファイルシステムのどこにファイルのデータが配置されているかに関する情報も含まれます。覚えておいてください–ファイルのメタデータのみがiノードに保存されます。
ファイルシステム内のiノードの総数は、使用可能なスペースとパーティションに保存できるファイルの数によって異なります。
iノードはどのように割り当ておよび割り当て解除されますか?
ユーザーが新しくフォーマットされたファイルシステムにファイルを追加すると、11から始まるiノードがファイルメタデータを保持するために割り当てられます。
iノードの割り当てステータスを追跡するための「Inodeビットマップ」と呼ばれる別のデータ構造があります。これは、マップとして機能するビットのコレクションです。
次の表に示すように、iノード11〜18の割り当てステータスを示すためにiノードビットマップの8ビットを考えてみましょう。ビットマップの値1は、iノードが割り当てられていることを意味します。つまり、ファイルのメタデータを保持するために使用されます。ビットマップの値0は、iノードが現在使用されていないことを意味します。ここでは、iノード17が使用されていることがわかります。
iノード17にメタデータがあるファイルが削除された場合、対応するビットマップステータスは0になり、別のファイルで自由に使用できることを示します。
ファイルのiノード番号を表示するにはどうすればよいですか?
これを行うには2つの方法があります。
1つ目は、ls
を使用することです。 –i
を使用したコマンド スイッチの後にファイルの名前が続きます。出力の最初のフィールドは、「sample.txt」のメタデータを持つiノード番号です。
stat
を使用して同じ情報を取得できます コマンドの後にファイル名を続けます。
パーティションで使用可能なiノードの総数を表示するには、df
コマンドは-i
で使用できます スイッチ。
「/dev/ sda4」パーティションでは、404754480 iノードが使用可能であり、そのうち359044iノードのみが使用されます。
結論
本来、iノードテーブルは、ファイルデータの場所に関する情報とともに、すべてのファイルのメタデータをiノードに細心の注意を払ってスタックします。 Linux iノードについて説明したのは、氷山の一角にすぎません。内部動作の詳細については、このリンクを参照してください。
-
LinuxでZsyncを使用してファイルの一部を転送する方法
ISOイメージのような大きなファイルをダウンロードすることは、大きな苦痛になる可能性があります。インターネット接続によっては、ダウンロードに時間がかかる場合があり、ハードドライブの容量を大量に消費します。次に、更新されたバージョンが必要になった場合は、プロセス全体をもう一度実行する必要があります。 ただし、解決策はあります。 ZsyncはLinux用のファイル同期ツールであり、すべてを再度ダウンロードすることなく、変更されたファイルの一部のみを更新できます。 Zsyncは、ファイルとディレクトリを同期するためのもう1つの人気のあるLinuxツールであるrsyncに基づいており、非常に使いや
-
Linux でファイルを完全に削除する方法
Linux オペレーティング システムでは、削除されたファイルはゴミ箱に移動します。ゴミ箱を空にすると、ファイルはシステムから削除されます。ただし、回復ソフトウェアの需要が高まるにつれて、ゴミ箱から削除されたファイルはある程度まで回復できます。これは、ゴミ箱から削除されたファイルが完全に削除されることはなく、目に見えなくなったことを意味します。ファイルはまだハード ドライブのどこかに不必要なスペースを占有しており、新しいファイルが作成されてハード ドライブの同じセクターに保存されたときにのみ完全に削除されます。貴重なディスク スペースを回復し、ファイルの破損を回避するには、Linux 内のファ