为什么/dev和/run的inode号与/相同?

为什么/dev和/run的inode号与/相同?

请看下面的输出: 在下面的输出中,/dev和的 inode 号/run相同并且等于 2。./和的 inode 号../(可能是特殊情况,因为 ../ 应该指向 ./)也是 2 和 2。dev和具有相同的 inode run/因为内容完全不同。

$ll -i
total 84
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ./
      2 drwxr-xr-x  20 root root  4096 Aug 18 01:21 ../
     12 lrwxrwxrwx   1 root root     7 Aug 18 01:19 bin -> usr/bin/
1048577 drwxr-xr-x   4 root root  4096 Sep  1 15:53 boot/
5636097 drwxr-xr-x   2 root root  4096 Aug 18 01:21 cdrom/
      2 drwxr-xr-x  23 root root  4920 Sep  3 11:20 dev/
 262145 drwxr-xr-x 144 root root 12288 Sep  3 09:34 etc/
 524289 drwxr-xr-x   3 root root  4096 Aug 18 01:22 home/
     13 lrwxrwxrwx   1 root root     7 Aug 18 01:19 lib -> usr/lib/
     14 lrwxrwxrwx   1 root root     9 Aug 18 01:19 lib32 -> usr/lib32/
     15 lrwxrwxrwx   1 root root     9 Aug 18 01:19 lib64 -> usr/lib64/
     16 lrwxrwxrwx   1 root root    10 Aug 18 01:19 libx32 -> usr/libx32/
     11 drwx------   2 root root 16384 Aug 18 01:18 lost+found/
3932161 drwxr-xr-x   5 root root  4096 Aug 18 17:23 media/
1572865 drwxr-xr-x   7 root root  4096 Sep  2 14:19 mnt/
9175041 drwxr-xr-x   4 root root  4096 Aug 28 23:46 opt/
      1 dr-xr-xr-x 359 root root     0 Sep  3 10:18 proc/
5505025 drwx------  11 root root  4096 Sep  1 17:49 root/
      2 drwxr-xr-x  43 root root  1320 Sep  3 11:24 run/
     17 lrwxrwxrwx   1 root root     8 Aug 18 01:19 sbin -> usr/sbin/
2097153 drwxr-xr-x  11 root root  4096 Aug 26 20:34 snap/
 655361 drwxr-xr-x   2 root root  4096 Jul 31 21:57 srv/
      1 dr-xr-xr-x  13 root root     0 Sep  3 10:18 sys/
4325377 drwxrwxrwt  22 root root  4096 Sep  3 11:25 tmp/
1310721 drwxr-xr-x  14 root root  4096 Jul 31 21:58 usr/
8388609 drwxr-xr-x  14 root root  4096 Jul 31 22:05 var/

/sys与相同/proc。内容不同,但共享相同的 inode。

注意:我的整个系统只有一个 ext4 分区。交换已关闭,尽管我认为这并不重要。

编辑 - 斯蒂芬指出的已问问题在很大程度上得到了回答。为什么 /home、/usr、/var 等目录都有相同的 inode 号 (2)?
但我有兴趣了解有关其工作原理的更多细节。

在安装 Linux 时,我只提到了一个文件系统(/dev/sda1 -> ext4 -> / )。因此,对于 dev、run、proc、sys - Linux 正在创建这些附加的 FS,现在可以推断。
我知道这/proc是一个虚拟文件系统,位于内存中,而不是任何 HDD/SSD 上。有人可以解释一下/dev,/run和 是怎么回事吗/sys?它们是否存在于硬盘上(如果存在的话,如果可以有意义地追踪的话,其位置在哪里)。

答案1

因为它们位于不同的文件系统上。

它是device_id:inode唯一标识文件的元组,而不仅仅是索引节点。

# mount
...
/dev/sda8 on / type ext4 (rw,relatime,errors=remount-ro)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=816612k,mode=755)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=4032552k,nr_inodes=1008138,mode=755)

相关内容