[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

inode番号

pointこの用語のポイント

pointinodeに割り振られる番号だよ

pointinodeを識別するときに使うよ

pointUNIX系の話で登場するよ

point数に上限があるよ

スポンサーリンク

簡単に書くよ

inode番号とは

主にUNIX系で使われる、inode(ファイルやディレクトリの属性情報が書いてあるデータ)に割り当てられる番号
であり

inodeを識別するための番号
です。

image piyo

詳しく書くよ

順番に見ていきましょう。

inodeは、ファイルディレクトリの、所有者や更新日時、ファイルサイズなどの「属性情報が書かれているデータ」です。

例えば、そうですね。

ピヨ太君がファイルを作りました。

inode番号

ファイルの中には、データが入っています。

inode番号2

ファイルを構成する要素は、中に入っているデータ以外にもあります。
例えば

・所有者
・更新日時
・ファイルサイズ
アクセス権


などの情報です。

これらの属性情報は、実はファイルの中には、ありません。
別のところに置いてあります。

inode番号3

この「別のところに置いてあるファイルの属性情報をまとめたデータ」がinodeです。

inode番号4

それを踏まえて、inodeに割り当てられる識別用の番号が「inode番号」です。

inode番号5

inode番号は、inodeとファイル名などを関連付ける際に使われます。
inodeを識別するための番号です。

例えば、ピヨ太君が「/tmp」ディレクトリの中にファイル「hoge.txt」を作ったとしましょう。

inode番号6

そうすると、まず「hoge.txt」の中身のデータが、どこかに置かれます。

inode番号7

次に「hoge.txt」の属性情報(inode)が、どこかに置かれます。

inode番号8

inodeの中には、ファイルの属性情報と「ファイルの中身は、どこにあるよ!」が書いてあります。
また、inodeには識別するための番号が割り振られます。
この識別するための番号がinode番号です。

今回の例では、inode番号は「1」だったとしておきましょう。

inode番号9

最後に「/tmp」ディレクトリの中にinode番号とファイル名が保管されます。
具体的には、inode番号「1」とファイル名「hoge.txt」が保管されます。

inode番号10

さて、ピヨ太君が「/tmp」ディレクトリの中の「hoge.txt」を開きました。

inode番号11

コンピュータさんは、まず「/tmp」ディレクトリの中を見ます。
そうすると、inode番号「1」とファイル名「hoge.txt」が見つかります。

inode番号12

「hoge.txt」のinode番号は「1」だと分かりました。
次に、inode番号が「1」のinodeを見ます。

inode番号13

これで「hoge.txt」の属性情報が分かりました。
そういえば、inodeには「ファイルの中身は、どこにあるよ!」が書いてありましたね。

コンピュータさんは、inodeの中に書いてあった「ファイルの中身は、どこにあるよ!」な情報を元にして、ファイルの中身を見ます。

inode番号14

これで「hoge.txt」の

・ファイル名
・属性情報
・中身のデータ


が揃いました。

順番万端ですね。
実際に「hoge.txt」を開きます。

inode番号15

まとめると、ファイルの属性情報をまとめたデータが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まで、すべて空いています。

inode番号16

ファイルを3つ作ると、inode番号の空きがなくなります。

inode番号17

空いているinode番号がなくなったら、新しくファイルを作ることは、できません。
いらないファイルを削除して、inode番号に空きを作る必要があります。

inode番号18

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番号の空きが、なくなるからです。
一応、頭の片隅にでも置いておいてください。

image piyo2

一言でまとめるよ

まぁ「inode番号」って単語が出てきたら「inodeに割り当てられる識別用の番号なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク