1,EXT2文件系统结构
Ext2文件系统的块组
超级块 | 组描述符 | 数据位图 | Inode位图 | Inode表 | 数据块 |
1个块 k个块 1个块 1个块 n个块 m个块
硬盘上的启用扇区和块组
启用块 | 块组0 | 块组1 | 。。。。 | 块组n |
超级快:用于存储文件系统自身元数据的核心结构。
组描述符:包含了文件系统中各个块组的状态,
数据块位图和inode位图:用于表示对应的数据块活inode是空闲的还是被使用中的。
inode表:包含了块组中的所有的inode
数据块:包含了文件系统中的文件的有用数据。
EXT3文件系统结构的改进
ext3文件系统在第一个块组(block group 0)里的开始1k的地方存放的是Boot Block,Boot Block仅在块组0中存在,boot block不受ext3文件系统的管理。
EXT4文件系统的改进
EXT4中新增加了meta block group的概念,将整个磁盘设备划分为多个meta block group,每个meta block group又可以分为为64个block group(每个block group最多包含128MB的block),分别从block group0到block group63。
每个meta block group有描述自身情况的group descriptor table和描述整个文件系统情况的Super Block。meta group中所有group的Group Descriptor都保存在的第1个group中,第2和最后一个group储存有Group Descriptor table的副本。Super Block保存在group ID为3,5,7的幂group中。
2,ext2如何表示一个大文件,因为一个大文件可能占用了很多个块。
答:使用了间接指引的概念,有点类似内存里页表的概念,inode只是固定的大小,其中可以记录12个直接数据块,如果文件太大,12个直接数据块不能完全表示的时候,那么会使用间接块,这个间接块里不是记录文件内容,而是记录文件所占用块的序号。