/proc と /sys に inode 1 があるのはなぜですか?

/proc と /sys に inode 1 があるのはなぜですか?

/proc および /sys ディレクトリには、"不良ブロック" を意味するにもかかわらず、inode 値 1 があります。どちらも機能しており、これらの 2 つに加えて、/boot にも inode 1 がある別の Linux マシンがあります。

adam@AdamMobile:/$ ls -i
 1179649 bin           2 dev           25034753 home            22675457 lib         12058625 media         1 proc  10092545 sbin        12 swapfile   8912897 usr            14 vmlinuz.old
12713985 boot         15 device-clean        13 initrd.img       9961473 lib64       25165825 mnt    13500417 root   7733249 snap         1 sys        2621441 var
20578305 cdrom  23330817 etc                 17 initrd.img.old        11 lost+found   1441793 opt           2 run   23592961 srv   18743297 tmp             18 vmlinuz

なぜ inode 1 があるのでしょうか?

答え1

inode構造はファイルシステム設計の一部です。inode1~10が予約されているという想定はUFSとその派生(Linux ext2/ext3/ext4を含む)に特有のものであり、必ずしも当てはまらない独立して設計されたファイルシステムに。

あなたが言及した 3 つの場所はすべて、異なるファイルシステムのマウントポイントです (findmnt確認するには を使用します)。

  • たとえば、/boot は、FAT32 ファイルシステム (EFI システム パーティション) がマウントされる場所であることがよくあります。FAT ファイルシステムには、それ自体の inode 番号はありません (カーネルは偽の inode 番号を表示する必要があります)。FAT ファイルシステムは、「クラスター マップ」で不良セクタをマークします。

  • /proc と /sys は完全に仮想的な (カーネルによって生成された) ファイルシステム (procfs と sysfs) であり、実際にはディスク上のファイルシステムではないため、「不良ブロック」や「予約済み inode」の概念さえありません。

  • 他のファイルシステムは動作が異なります。たとえば、NTFS は$BadClus不良セクターを予約するために inode 8 ( という名前の実際の隠しファイル) を使用します。Btrfs は不良セクターを完全には追跡しません。

答え2

inode 値が 1 であるが、これは「不良ブロック」を意味する

ext4 「欠陥ブロックのリスト」実際には、それは のためですext4。各ファイルシステム タイプは、独自の方法でいくつかの特別な inode を予約できます。

問題のマウントポイントには他のファイルシステム(疑似ファイルシステム)が含まれています/procprocそして/sysタイプはsysfsmount引数なしで呼び出すとこれを確認できます。

/boot他のマシンではオンになっていないようですext4

関連情報