inode番号(アイノード番号)
inodeに割り振られる番号だよ
inodeを識別するときに使うよ
UNIX系の話で出てくるよ
数に上限があるよ
簡単に書くよ
inode番号(アイノード番号)(読:アイノードバンゴウ 英:inode number)とは
主にUNIX系で使われる、ファイルやディレクトリの属性情報が書いてあるデータ(inode)に割り当てられる番号
であり
inodeを識別するための番号
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「inode」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
inodeは「ファイルやディレクトリの所有者や更新日時、ファイルサイズなどの属性情報が書かれているデータ」です。
例えば、そうですね。
ピヨ太君がファイルを作りました。
ファイルの中にはデータが入っています。
ファイルを構成する要素は、中に入っているデータ以外にもあります。
例えば
・所有者
・更新日時
・ファイルサイズ
・アクセス権
などの情報です。
これらの属性情報は、実はファイルの中には ありません。
別のところに置いてあります。
この、別のところに置いてある
ファイルの属性情報をまとめたデータ
がinodeです。
以上を踏まえて
inodeに割り当てられる識別用の番号
が「inode番号」です。
inode番号はinodeとファイル名などを関連付けるときに使われます。
例えば、そうですね。
ピヨ太君が「/tmp」ディレクトリの中にファイル「hoge.txt」を作ったとしましょう。
そうすると、まず「hoge.txt」の中身のデータが、どこかに置かれます。
次に「hoge.txt」の属性情報(inode)が、どこかに置かれます。
inodeの中には、ファイルの属性情報と「ファイルの中身は、どこにあるよ!」が書いてあります。
また、inodeには識別するための番号が割り振られます。
この識別するための番号がinode番号です。
今回の例では、inode番号は「1」だったとしておきましょう。
最後に「/tmp」ディレクトリの中にinode番号とファイル名が保管されます。
具体的には、inode番号「1」とファイル名「hoge.txt」が保管されます。
さて、ピヨ太君が「/tmp」ディレクトリの中の「hoge.txt」を開きました。
コンピュータさんは、まず「/tmp」ディレクトリの中を見ます。
そうすると、inode番号「1」とファイル名「hoge.txt」が見つかります。
「hoge.txt」のinode番号は「1」だと分かりました。
次に、inode番号が「1」のinodeを見ます。
これで「hoge.txt」の属性情報が分かりました。
そういえば、inodeには「ファイルの中身は、どこにあるよ!」が書いてありましたね。
コンピュータさんは、inodeの中に書いてあった「ファイルの中身は、どこにあるよ!」な情報をもとにしてファイルの中身を見ます。
これで「hoge.txt」の
・ファイル名
・属性情報
・中身のデータ
が揃いました。
順番万端ですね。
実際に「hoge.txt」を開きます。
まとめると、ファイルの属性情報をまとめたデータがinodeです。
inodeには実データの場所も書いてあります。
inodeには識別するための番号が割り当てられます。
inode番号です。
ディレクトリの中にはファイル名とinode番号が保管されています。
ファイルの情報が必要になったら
1.ファイル名からinode番号をたどる
2.inode番号からinodeをたどる
3.inodeから実データをたどる
の順番で集めます。
これがinodeを使ったファイル管理の流れであり、inode番号の役割です。
inodeを識別するため、inodeを他の情報と関連付けるために使われます。
ファイルに割り当てられたinode番号を確認したい場合は
ls -i
を実行してください。
「ls」コマンドはファイルやディレクトリの一覧を表示するコマンドです。
「-i」オプションはinode番号も表示するオプションです。
例えば
ls hoge.txt
の実行結果が
hoge.txt
だったとしましょう。
ls -i hoge.txt
の実行結果は
201412369 hoge.txt
のような形になります。
先頭の
201412369
がinode番号です。
なお、inode番号には上限があります。
上限を超えると、ファイルが作れなくなります。
例えば、inode番号の上限が3だったとしましょう。
最初の状態では、1から3まで、すべて空いています。
ファイルを3つ作ると、inode番号の空きがなくなります。
空いているinode番号がなくなったら、新しいファイルを作れません。
いらないファイルを削除して、inode番号に空きを作る必要があります。
inode番号の空きを確認するコマンドは
df -i
です。
私の環境(CentOS 7)で実行したところ、以下の結果が表示されました。
ファイルシス Iノード I使用 I残り I使用% マウント位置
/dev/mapper/centos-root 52428800 29491 52399309 1% /
devtmpfs 231817 422 231395 1% /dev
tmpfs 234381 1 234380 1% /dev/shm
tmpfs 234381 490 233891 1% /run
tmpfs 234381 13 234368 1% /sys/fs/cgroup
/dev/mapper/centos-home 101183488 18 101183470 1% /home
/dev/sda1 512000 337 511663 1% /boot
tmpfs 234381 1 234380 1% /run/user/0
少し見にくいですが「I使用%」は、すべて「1%」になっています。
この様子だと、まだまだ使い切る心配は、なさそうですね。
あまり気にする必要はないと思いますが、サイズの小さいファイルを たくさん作ると、ディスク容量に空きがあってもファイルを作れなくなります。
inode番号の空きが、なくなるからです。
一応、頭の片隅に置いておいてあげてください。
一言でまとめるよ
まぁ「inode番号」って単語が出てきたら「inode
(ファイルやディレクトリの属性情報が書いてあるデータ)に割り当てられる識別用の番号なんだな~」と お考えください。
おまけ
■訳してみるよ
「i(アイ)」はアルファベットの「i」です。
「index(インデックス)」の頭文字だという説明を見つけましたが、ウソかホントかは知りません。
ちなみに「index(インデックス)」の意味は「指標」とか「指針」とか「索引」とか「見出し」とかです。
「node(ノード)」の意味は「節」とか「節点」とか「結節」とか「集合点」とかです。
「番号」は日本語ですね。
何となく くっつけると
iの節の番号
となります。






