
新Linux入門|ファイルの正体は“iノード”! Linuxのファイル管理の秘密
Linuxでファイルを扱うとき、私たちはファイル名を使って操作していますが、
実はその裏側では「iノード(アイノード)」という仕組みがファイルを管理しています。
この「iノード」は、ファイルシステムの中でファイルの正体ともいえる存在。
ファイル名は単なる“ラベル”にすぎず、ファイルの中身(実体)はiノードによって管理されています。
この記事では、AlmaLinux 9.6を使って、
「iノードとは何か?」「どうやって確認できるのか?」をやさしく解説していきます。

📘 iノードとは?
iノード(index node) とは、Linuxファイルシステムが各ファイルやディレクトリを管理するために使用するデータ構造です。
つまり、ファイルそのものではなく、ファイルの情報(メタデータ)を保持する箱のようなものです。
iノードはファイルごとに1つずつ存在し、次のような情報を持っています。
| 区分 | 説明 |
|---|---|
| ファイルサイズとブロック情報 | ファイルがどれくらいの大きさで、ディスク上のどのブロックに保存されているかを保持します。 |
| ファイルのメタデータ | 所有者、グループ、アクセス権限(rwx)、作成日時・最終アクセス日時・更新日時を記録します。 |
| ファイルタイプとパーミッション | 通常ファイル、ディレクトリ、シンボリックリンクなどの種別と、それに対応するパーミッション情報を含みます。 |
| ファイルの所有者情報 | 所有するユーザーID(UID)とグループID(GID)を保持します。 |
💡 ポイント
ファイルの内容(データ)はiノードに直接保存されるわけではなく、
iノードが「データブロック」へのポインタを持ち、そこから実データを参照する仕組みです。
🧱 iノードとファイル名の関係
ファイル名とiノードの関係を一言で言えば、
「ファイル名はiノードへのリンク」です。
ファイル名そのものは、実際のファイルデータを指しているわけではなく、
ディレクトリ内で“iノード番号”とセットで管理されています。
| 要素 | 役割 |
|---|---|
| ファイル名 | iノードを指すラベル(人間が識別しやすい名前) |
| iノード番号 | ファイルシステムが実体を特定するための番号 |
| 実データ | ディスク上のブロックに保存される内容 |
たとえば、ファイル名を変更しても、
iノード番号が変わらなければファイルの実体(中身)は同じままです。
🔍 iノード番号を確認してみよう
iノード番号を確認するには、ls コマンドに -i オプションを付けます。
この番号がファイルの「正体番号」です。
使用例
[suzuki@AlmaLinux ~]$ ls -i
53625418 data 16253141 memo.txt 17235178 program.py 17325252 sample.html出力結果の意味
| iノード番号 | ファイル名 |
|---|---|
| 53625418 | data |
| 16253141 | memo.txt |
| 17235178 | program.py |
| 17325252 | sample.html |

📘 説明
この結果から、memo.txt は iノード番号「16253141」で管理されていることが分かります。
ファイル名はこの番号を通してiノードを参照しており、
システムはこのiノード番号を使って実際のデータを読み書きします。
🧠 iノードの数はファイル数の上限を決める!
ファイルシステムには、作成時に決まるiノードの総数があります。
これは「最大でいくつのファイルを作成できるか」を決定する要素です。
| 状況 | 説明 |
|---|---|
| iノードが十分にある | 新しいファイルを作成できる |
| iノードが枯渇している | ディスクに空き容量があっても新しいファイルを作成できない |
💡 たとえば
ログファイルが大量に生成される環境では、
iノードの枯渇が原因でファイル作成に失敗することもあります。
🖥️ iノードに関する便利なコマンド
Linuxでは、iノード情報を確認するためのコマンドがいくつかあります。
代表的なものをまとめてみましょう。
| コマンド | 説明 | 使用例 |
|---|---|---|
| ls -i | ファイルごとのiノード番号を表示 | ls -i sample.txt |
| stat | 詳細なメタデータ(iノード番号・アクセス権限・更新時刻など)を表示 | stat sample.txt |
| df -i | ファイルシステムのiノード使用状況を確認 | df -i |
出力例(stat)
[suzuki@AlmaLinux ~]$ stat memo.txt
File: memo.txt
Size: 2048 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16253141 Links: 1
Access: (0644/-rw-r--r--) Uid: (1000/suzuki) Gid: (1000/suzuki)
Access: 2025-10-28 21:40:11.000000000 +0900
Modify: 2025-10-28 21:39:58.000000000 +0900
Change: 2025-10-28 21:39:58.000000000 +0900
Birth: -📘 解説
ここで表示されている「Inode: 16253141」が、memo.txt に対応するiノード番号です。
また、ファイルサイズ、所有者、アクセス権限、更新日時といった情報もこのiノードに含まれています。
✅ まとめ:ファイルの裏側には“iノード”がいる!
iノード は、Linuxファイルシステムがファイルを管理するうえで欠かせない存在です。
ファイル名は単なるラベルに過ぎず、
実際のファイルの正体は、このiノードが持つメタデータ情報にあります。
💡 覚えておきたいポイント
- 各ファイルには一意の iノード番号 が割り当てられる
- ファイル名は iノード を指すリンク(参照)
- ls -i や stat コマンドで iノード情報を確認できる
- iノードが不足すると、ディスク容量があっても新しいファイルは作れない
次回ファイルを作成するとき、
その裏で「iノード」が静かに仕事をしていることを思い出してみてください。
