linux文件系统之i节点详解
2015-10-30 22:31
701 查看
i节点即index node索引节点。接下来的是第五个磁盘块了,480个i节点,每个i节点占用32个字节,总共占用480*32/1024=15个磁盘块,现在再重新理清一下磁盘块的关系了:
0块:引导块,每块1024B
1块:超级块
2块:i节点位图
3块:逻辑块位图
4...18:i节点区块
19块:数据块,刚好和Linux文件系统分析之二中提到的数据块开始于第19块吻合。
下面分析第一个i节点,它位于块号为4的块中,即是第五块了。
00001000h: ED 41 00 00 80 00 00 00 9E AA 2E 84 00 08 13 00 ; 鞟..?..灙.?...
00001010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
为分析这二进制中的数据涵义,下面列出i节点结构,这个i节点其实就是表示根目录了。
struct d_inode{
unsigned short i_mode;
unsigned short i_uid;
unsigned long i_size;
unsigned long i_time;
unsigned char i_gid;
unsigned char i_nlinks;
unsigned short i_zone[9];
}
刚好是32个字节,
i_mode表示文件类型和属性,这里是41ED即0100.0001.1110.1101
见stat.h文件中的定义:
第一个四位0100表示这是一个目录文件,确实如此,这就是根目录。
接下来的三位000表示文件的属性,执行或搜索时是否设置uid
最后面的九位1.1110.1101表示rwxrwxrwx了,这个用过linux的都知道
i_uid为0000,表示这个文件的所有者的uid是0,通常root用户的uid就是0
i_size为00000080,表示这个文件的长度为80H=128个字节,后面可以验证。
i_time为842EAA9E,表示这个文件的创建时间
i_gid为00,表示该文件所有者所在group的id为0
i_nlinks为08,表示有8个文件目录项指向该i节点
最后一个13H即19表示该文件的数据块号,后面都是0,表示该文件在一个数据块中存得下,不用更多的数据块。
分析之四将追溯到这个i节点的数据块即19块,用以说明目录项的数据结构。
0块:引导块,每块1024B
1块:超级块
2块:i节点位图
3块:逻辑块位图
4...18:i节点区块
19块:数据块,刚好和Linux文件系统分析之二中提到的数据块开始于第19块吻合。
下面分析第一个i节点,它位于块号为4的块中,即是第五块了。
00001000h: ED 41 00 00 80 00 00 00 9E AA 2E 84 00 08 13 00 ; 鞟..?..灙.?...
00001010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................
为分析这二进制中的数据涵义,下面列出i节点结构,这个i节点其实就是表示根目录了。
struct d_inode{
unsigned short i_mode;
unsigned short i_uid;
unsigned long i_size;
unsigned long i_time;
unsigned char i_gid;
unsigned char i_nlinks;
unsigned short i_zone[9];
}
刚好是32个字节,
i_mode表示文件类型和属性,这里是41ED即0100.0001.1110.1101
见stat.h文件中的定义:
第一个四位0100表示这是一个目录文件,确实如此,这就是根目录。
接下来的三位000表示文件的属性,执行或搜索时是否设置uid
最后面的九位1.1110.1101表示rwxrwxrwx了,这个用过linux的都知道
i_uid为0000,表示这个文件的所有者的uid是0,通常root用户的uid就是0
i_size为00000080,表示这个文件的长度为80H=128个字节,后面可以验证。
i_time为842EAA9E,表示这个文件的创建时间
i_gid为00,表示该文件所有者所在group的id为0
i_nlinks为08,表示有8个文件目录项指向该i节点
最后一个13H即19表示该文件的数据块号,后面都是0,表示该文件在一个数据块中存得下,不用更多的数据块。
分析之四将追溯到这个i节点的数据块即19块,用以说明目录项的数据结构。
相关文章推荐
- 0.11版linux文件系统(一)
- 0.11版linux文件系统(二)
- LINUX编程学习路线
- 0.11版linux文件系统(三)
- 虚拟机下32位CentOs版本的linux下hadoop2.4.1集群搭建(3个节点版本)
- centos配置网卡
- linux笔记:搜索命令find,locate,which,whereis,grep
- Linux命令缩写来由
- centos7利用packstack单点安装openstack
- linux 压缩和解压缩命令详解
- 通过完整示例来理解如何使用 epoll
- NTP服务及时间同步(CentOS6.x)
- Linux中寻找头文件的方法
- Linux rpm 命令参数使用详解[介绍和应用]
- 网 上 找 了 些 练 习 题 试 试 手
- linux笔记:权限管理命令chmod,chown,chgrp,umask
- Linux的chattr与lsattr命令
- Linux下常见性能分析工具
- linux目录扫描
- How To Build CyanogenMod Android (oneplus/bacon) On Linux