Linuxのiノードとは何ですか?


Linuxのすべては、一貫性を維持するためのファイルと見なされます。これには、ハードウェアデバイス、プリンター、ディレクトリ、およびプロセスが含まれます。音楽、テキスト、ビデオ、その他のマルチメディアファイルなどの通常のファイルにも、メタデータと呼ばれる追加のデータが関連付けられています。

Linuxのinodeとは何ですか? iノードエントリは、Linuxファイルシステム の基礎です。ファイルに関するメタデータを管理し、Linuxの内部動作の重要な部分です。

ファイルシステムの構造とは

ファイルシステムは、データブロックとiノードの2つの部分に分かれています。ブロックの数は作成後に固定され、変更することはできません。

名前、パス、場所、リンク、その他のファイル属性はディレクトリにありません。ディレクトリは、iノード番号が一致するファイルの名前を含む単純なテーブルです。

同じファイルに複数の名前を付けるハードリンクを作成できます。ハードリンクを作成すると、iノードを含むテーブルに新しい名前も作成されますが、ファイルは移動されません。

大きなファイルを移動する場合、時間がかかります。新しいディレクトリに名前エントリを作成し、古いエントリを削除する方が効率的です。同じ方法でファイルの名前を変更することもできます。

In_content_1 all:[300x250] / dfp:[640x360]->

階層の最上部はファイルシステム自体です。ファイルシステム内にはファイル名があります。ファイル名はiノードにリンクします。 iノードは物理データにリンクします。

Linuxのiノードとは

iノードはデータ構造です。ファイルシステム上のファイルまたはディレクトリを定義し、ディレクトリエントリに格納されます。 iノードは、ファイルを構成するブロックを指します。 iノードには、ファイルの読み取りに必要なすべての管理データが含まれています。すべてのファイルのメタデータ は、テーブル構造のinodeに格納されます。

名前でファイルを参照するプログラムを使用する場合、システムは、存在するディレクトリエントリファイルを検索します。対応するiノードをプルアップします。これにより、システムにプロセスまたは操作を実行するために必要なファイルデータと情報が提供されます。

Inodeは通常パーティションの始まり の近くにあります。ファイルに関連付けられているすべての情報を保存しますが、ファイル名と実際のデータは除きます。 Linuxディレクトリ内のすべてのファイルには、ファイル名とiノード番号があります。ユーザーは、iノード番号を参照することでファイルのメタデータを取得できます。

ファイル名とiノード番号は、別のインデックスに保存され、iノードにリンクされます。ファイルを表すメタデータにリンクできます。以下の画像に示すように、1つのデータまたはiノードにリンクする複数のファイル名を持つことができます。

iノード番号とは

Linux構造内のすべてのiノードには、一意の番号が識別されます。インデックス番号とも呼ばれ、次の属性があります。

  • サイズ
  • 所有者
  • 日付/時刻
  • 権限アクセス制御
  • ディスク上の場所
  • ファイルの種類
  • リンクの数
  • ファイルに関する追加のメタデータ
  • iノード番号のリストを確認するには、次のコマンドを使用します。

    ls -i

    下のスクリーンショットは、左端の列に表示されるiノード番号。

    iノードの動作方法

    新しいファイルを作成すると、ファイル名とiノード番号が割り当てられます。どちらもディレクトリにエントリとして保存されます。 lsコマンド(ls -li)を実行すると、ディレクトリに保存されているファイル名とiノード番号のリストが表示されます。

    iノード情報をリストするには、以下のコマンドを使用しますファイルシステムごとに。

    df -hi

    使用しているiノードの数

    1つの方法ファイルシステムのスペースが不足すると、すべてのiノードが使い果たされます。ディスクに十分な空き容量がある場合でも、新しいファイルを作成することはできません。

    すべてのiノードを使い果たすと、システムが突然停止することもあります。使用済み、空き、使用率などのiノードの使用に関する統計のリストを表示するには、次のコマンドを入力します。

    sudo df -ih

    inodeを使用する追加の方法

    Linuxでのinodeの動作により、競合するinode番号を持つことができなくなります。異なるファイルシステム間でハードリンクを作成することはできません。ただし、異なるファイルシステム間でソフトリンクを使用できます。元のファイルを削除しても、ハードリンクを介してデータを使用できます。

    ファイルを削除することで、特定のiノード番号を指す名前の1つを削除するだけです。データは、同じiノード番号に関連付けられているすべての名前を削除するまで残ります。 Linuxシステムは、iノードが機能するため、システムの再起動を必要とせずに更新されます。

    プロセスは、別のプロセスが同じファイルを新しい更新バージョンで置き換え、新しいiノードを作成すると同時にライブラリファイルを使用できます。実行中のプロセスは古いファイルを使用し続けます。次回同じプロセスを使用するときには、新しいバージョンが使用されます。

    ユーザーはiノードと直接対話しませんが、Linuxファイル構造の基本的なコンポーネントを表します。

    関連記事:


    29.02.2020