Linuxファイルシステムは、特にデータとメタデータの雑草に取り掛かる場合、理解するのが複雑です。 ls
を実行するたびに コマンドを実行し、出力(リストされたファイル、権限、アカウントの所有権など)を確認して、データが約であることを理解します。 表示されるファイルは、ファイル自体とは別の場所に保存されているため、呼び出す必要があります。 iノードは舞台裏で一生懸命働いているので、そうする必要はありません。 iノードが正確に何であるか、そしてそれが私たちのために何をするかを見てみましょう。
iノードとは何ですか?
定義上、iノードはインデックスノードです。これは、特定のファイルシステム上の特定のメタデータの一意の識別子として機能します。メタデータの各部分は、ファイルとして考えるものを記述します。そうです、iノードは他のファイルシステムから独立して各ファイルシステムで動作します。これが混乱するのは、各iノードが共通のテーブルに格納されていることに気付いたときです。つまり、コンピュータにマウントされている各ファイルシステムには独自のiノードがあります。 iノード番号は複数回使用できますが、同じファイルシステムで使用することはできません。ファイルシステムIDはiノード番号と組み合わされて一意の識別ラベルを作成します。
iノードはいくつありますか?
数学を気にしない場合は、このセクションをスキップすることをお勧めします。すべてのシステムには多くのiノードがあり、注意すべき数がいくつかあります。まず、それほど重要ではありませんが、理論上の最大iノード数は2 ^ 32(約43億iノード)です。次に、さらに重要なのは、システム上のiノードの数です。一般に、iノードの比率はシステム容量の1:16KBです。明らかに、すべてのシステムは異なるので、自分でその計算を行う必要があります。
高度な使用法
数学を嫌う人には朗報があります。「そのための命令があります」。システム上のiノードの数を確認するには、 -i
を使用できます。 df
のオプション ここに見られるように、コマンド:
[tcarrigan@rhel ~]$ df -i /dev/sda1
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 524288 312 523976 1% /boot
上記のコマンド構文と出力から、 df -i
を実行したことがわかります。 ファイルシステム/dev / sda1
。このファイルシステムには合計524,288のiノードがあり、そのうち312のみが使用されています(約1%)。
ファイルレベルのiノード
特定のファイルのiノード番号を確認することもできます。これを行うには、 ls -i
を使用します 目的のファイルに対するコマンド。例:
[tcarrigan@rhel my_articles]$ ls -i Creating_volume_groups
1459027 Creating_volume_groups
このファイルのiノード番号は1459027です。 。
ディレクトリレベルのiノード
ファイルの場合と同様に、ディレクトリのiノードも表示されます。これを行うには、 ls -i
を使用します いくつかの追加オプションを使用して、もう一度コマンドを実行します。例:
[tcarrigan@rhel article_submissions]$ ls -idl my_articles/
352757 drwxrwxr-x. 2 tcarrigan tcarrigan 69 Apr 7 11:31 my_articles/
-i
を使用したことがわかります (iノード)および -l </ code> (長い形式)および
-d
(ディレクトリ)。これらのフラグは、 my_articlesに関する大量の情報を提供します。 iノード番号、権限、所有権などを含むディレクトリ。
まとめ
iノードは、ファイルシステムとその構造について詳しく知りたい場合に開始するのに最適な場所です。データの最小単位にラベルを付けてインデックスを付ける方法は、知っておくべき重要な情報です。 iノードに関しては、はるかに高度な操作を実行できます。たとえば、iノードを開いてファイルの内容を読み取ることができます。この機能により、そこに格納されているメタデータをさらに詳しく調べることができます。うまくいけば、この高レベルの外観が、iノード探索のベースラインを提供します。
[無料のオンラインコース:Red HatEnterpriseLinuxの技術概要。 ]