大致过程如图:
查看inode大小
[root@localhost ~]# dumpe2fs -h /dev/sda1 | grep "Inode size" dumpe2fs 1.39 (29-May-2006) Inode size: 128
[root@localhost ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 4905600 95401 4810199 2% / /dev/sda1 76304 35 76269 1% /boot tmpfs 64413 1 64412 1% /dev/shm可以看到,Inode的数目是有限的,所以如果系统中的inode使用完了,那么即使磁盘还有空间,也无法再向磁盘存储新的文件,因为,新文件要创建Inode
ln file.txt file.hardlink ln -s file.txt file.softlink然后查看他们的inode
[root@localhost testForCsdn]# ls -il total 20 2256709 -rw-r--r-- 2 root root 222 Oct 24 19:17 file.hardlink 2256719 lrwxrwxrwx 1 root root 8 Oct 24 20:32 file.softlink -> file.txt 2256709 -rw-r--r-- 2 root root 222 Oct 24 19:17 file.txt可以看到,创建一个硬链接并没有创建新的Inode,只不过是在file.txt上加上了一个新的dictionary的对应关系。当我修改file.txt的时候,也就是修改了inode是2256709的那块磁盘,而硬链接读一样的磁盘,这样就不难理解为什么硬链接会同步更新。
[root@localhost testForCsdn]# ls -ial total 36 2256587 drwxr-xr-x 2 root root 4096 Oct 24 20:44 . 2256577 drwxr-x--- 17 root root 4096 Oct 24 20:31 .. 2256709 -rw-r--r-- 2 root root 222 Oct 24 19:17 file.hardlink 2256719 lrwxrwxrwx 1 root root 8 Oct 24 20:32 file.softlink -> file.txt 2256709 -rw-r--r-- 2 root root 222 Oct 24 19:17 file.txt
[root@localhost testForCsdn]# stat . File: `.' Size: 4096 Blocks: 16 IO Block: 4096 directory Device: 802h/2050d Inode: 2256587 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2014-10-24 20:45:35.000000000 -0700 Modify: 2014-10-24 20:44:26.000000000 -0700 Change: 2014-10-24 20:44:26.000000000 -0700其中
通过STAT命名可以看到,Inode中包含的一些信息
(1)文件大小
(2)占用block数目
(3)拥有者和所属组的ID
(4)文件的权限
(5)时间戳
(6)链接数,即多少个文件指向这个inode
(7)数据block的位置
图解linux中Inode-分析Linux如何通过Inode读取磁盘
原文地址:http://blog.csdn.net/hello_hwc/article/details/40474763