Ext
全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过为了快速恢复文件系统,减少一致性检查的时间,增加了日志功能,所以Ext2被称为索引式文件系统 ,而Ext3/Ext4被称为日志式文件系统 。
备注:Linux支持很多文件系统,包括网络文件系统(NFS)、Windows的Fat文件系统。
查看Linux支持的文件系统:ls -l /lib/modules/$(uname -r)/kernel/fs
![](https://img-blog.csdnimg.cn/img_convert/b0122e193759af18d420f03714c7631f.webp?x-oss-process=image/format,png)
查看Linux支持的文件系统(已载入到内存中):cat /proc/filesystems
![](https://img-blog.csdnimg.cn/img_convert/72192b410b20c69c0a76518add45100c.jpeg)
核心设计
数据存放区
这些元素相对稳定,磁盘格式化后,就固定下来了。
inode(索引节点)
记录文件的权限、属性和数据所在块block的号码,每个文件都有且仅有一个的inode,每个inode都有自己的编号,可以把inode简单地理解为文档索引 。
备注:在磁盘格式化后,inode的大小和数量都已经固定了,大小均为128Bytes(新的Ext4和xfs为258Bytes)。读取文件时,先读取inode里面记录的文件属性和权限,匹配正确后,才会读取文件内容(block)。 在Linux系统中,实际使用inode来识别文件,而不是文件名,类似于用户标识和昵称的设计 。
inode table
存储文件系统的所有inode编号的表格
block(数据区块)
存储的文件内容,也叫数据区块(data block),每个block都有自己的编号,Ext2支持的单位block容量仅为1k、2k、4k 。
备注:为了方便inode的记录,在磁盘格式化后,block的大小都已经固定了。每一个块只能存放一个文件的数据,若文件太大,将占用多个block;若文件太小,block剩余空间就不能被使用了,就会导致 磁盘空间浪费 ,所以 在磁盘分区后,文件系统格式化前,请先仔细想想文件系统的预计使用情况 。
查看文件或者文件系统的状态
stat [options] [filename]