【アイノード】

inode(アイノード) とは?

💡 ファイルの「戸籍謄本」、名前じゃなく番号で管理する裏方さん
📌 このページのポイント
inode の仕組み ディレクトリ report.txt → #123 image.png → #456 backup.txt → #123 inode #123 所有者: user1 | 権限: 644 サイズ: 2.4KB | ブロック→ inode #456 所有者: user1 | 権限: 755 サイズ: 150KB | ブロック→ データブロック Hello World... データブロック [画像データ] 💡 report.txt と backup.txt は同じ inode #123 を指す → ハードリンク ファイル名は違っても実体は同じ。どちらを編集しても同じデータが変わる
inode の仕組み(ディレクトリ → inode → データブロック)
ひよこ ひよこ

inodeって何なの?ファイルの名前とは違うの?

ペンギン先生 ペンギン先生

inodeは「ファイルの戸籍謄本」みたいなものだよ。ファイルの所有者、サイズ、更新日時、ディスク上のどこにデータがあるか…そういったメタ情報をまとめて持っているんだ。面白いことに、ファイル名はinodeには入っていないんだよ

ひよこ ひよこ

ファイル名が入ってないの?じゃあどうやってファイルを見つけるの?

ペンギン先生 ペンギン先生

ディレクトリが「ファイル名→inode番号」の対応表を持っているんだ。たとえば report.txt というファイルを開くとき、OSはまずディレクトリの対応表で「report.txt は inode 12345」と調べて、そのinode番号からメタ情報を取得する流れだよ

ひよこ ひよこ

ハードリンクっていうのもinodeと関係あるの?

ペンギン先生 ペンギン先生

まさにそう!ハードリンクは、異なるファイル名が同じinode番号を指す仕組みだよ。だから2つのファイル名があっても実体は1つ。どちらから編集しても同じ内容が変わるんだ

ひよこ ひよこ

inodeが足りなくなることってあるの?

ペンギン先生 ペンギン先生

あるよ!ファイルシステムを作るときにinodeの最大数が決まるから、小さいファイルを大量に作るとディスクは空いているのにinodeが枯渇して新しいファイルが作れなくなる。`df -i` コマンドでinode使用率を確認できるから、サーバー運用では定期的にチェックするのが大事だね

ひよこ ひよこ

inodeにはどんな情報が入っているの?全部知りたい!

ペンギン先生 ペンギン先生

主な情報は、ファイルタイプ、パーミッション、所有者UID/GID、ファイルサイズ、タイムスタンプ(atime/mtime/ctime)、そしてデータブロックへのポインタだよ。`stat` コマンドでファイルのinode情報を詳しく見られるから試してみるといいね。ちなみにinode自体のサイズは ext4 だとデフォルト256バイトで、この小さな構造体がファイルシステム全体を支えているんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「inode」って出てきたら「ファイルの身分証明書のようなメタ情報の入れ物」と思えればだいたいOK!
📖 おまけ:英語の意味
「index node」 = 索引ノード
💬 index(索引)のnode(節点)を縮めた言葉で、ファイルシステムの設計初期からある由緒正しい用語だよ
← 用語集にもどる