linux系统下关于相同 inode 的疑问
问题:linux系统下关于相同 inode 的疑问。
[root@localhost /]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda2 13322104 1860428 10784940 15% /
/dev/sda1 93309 9426 79066 11% /boot
none 127632 0 127632 0% /dev/shm
------------------------------------------------------------------------------------------------------
一个 ls 命令:
[aaa@localhost /]$ ls -laid / /home/.. /usr/.. /boot/.. /etc/..
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /boot/..
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /etc/..
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /home/..
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /usr/..
看到所有的 inode值 都是相同的,因为他们引用的是同一个 inode ,就是 / ,根目录
------------------------------------------------------------------------------------------------------
但是让我疑惑的是这个:
[root@localhost /]# ls -ladi . .. / /boot
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 /
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 .
2 drwxr-xr-x 20 root root 4096 2月 9 14:43 ..
2 drwxr-xr-x 4 root root 1024 1月 29 19:19 /boot
------------------------------------------------------------------------------------------------------
不是 inode 就是一个文件么,根目录用的是 inode 2,那么 目录. 和 目录.. 也应该是 inode 2,但是为什么 /boot 也是 2 呢?
为什么不能是 inode 3 呢?然后配合里面的 . 的 inode 是2多好呢。为什么连 /boot 也是 2 呢?
------------------------------------------------------------------------------------------------------
[aaa@localhost lize]$ stat /; stat /boot
File: ‘/’
Size: 4096 Blocks: 8 IO Block: 4096 Directory
Device: 802h/2050d Inode: 2 Links: 20
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-02-09 21:35:46.000000000 +0800
Modify: 2012-02-09 14:43:45.000000000 +0800
Change: 2012-02-09 14:43:45.000000000 +0800
File: ‘/boot’
Size: 1024 Blocks: 2 IO Block: 4096 Directory
Device: 801h/2049d Inode: 2 Links: 4
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2012-02-09 22:27:20.000000000 +0800
Modify: 2012-01-29 19:19:56.000000000 +0800
Change: 2012-01-29 19:19:56.000000000 +0800
------------------------------------------------------------------------------------------------------
一个 inode 中引用了不同的 block?为什么 /boot 的 inode 不是 3 呢?请高手指教。
回答:因为 /boot 和 / 是不同的分区,一般分区的根都是 inode 2。
dumpe2fs -h /dev/sda1 的 block size = 1024
stat stat /boot
File: ‘/boot’
Size: 1024 Blocks: 2 IO Block: 4096 Directory
dumpe2fs -h /dev/sda2 也是
------------------------------------------------
所以上面说明了一点,同一个文件系统内 inode 是唯一的
但是不同的文件系统 inode 可以重复。希望能帮助到大家。