Linux文件系统Ext2

windows98以前的文件系统是FAT
windows2000以后的文件系统是NTFS
Linux的正规文件系统为Ext2(linux second extended file system,ext2fs)
通常来说一个分区就是一个可被挂载的文件系统
Linux将文件的权限与属性信息放置到文件系统的inode中,而实际数据放置到 data block块中。另外还有一个超级块(superblock)来记录整个文件系统的整体信息

Ext2采用的是文件索引系统(indexed allocation):
假设某一文件的权限和属性信息放置到inode4,而inode4记录该文件的数据放置在block2,block7,block13,block15这四个地方。那么操作系统就能够据此来排列磁盘的阅读顺序,一下子将四个block内容读出来
文件索引系统

FAT文件系统:
这种系统的文件存储没有inode,而block存储主要是用链试存储
缺点:block过于离散,文件内容的读取性能会变差,需要经常碎片化整理
FAT文件系统

文件系统一开始就将inode和block规划好,inode和block的大小和数量都保持不变,除非再格式化(或者利用resize2fs等命令来改变文件系统大小)

Ext2文件系统

Ext2的inode和block:

inode:记录文件的属性信息,一个文件对应一个inode,一个inode大小只有128byte,而记录一条block信息需要4byte

block:记录文件的内容,Ext2支持的block有三个规格大小:1KB,2KB,4KB。
每个block最多只能放置一个文件的数据:
1. 如果一个block装不下一个文件的数据,则可用多个block来存储一个文件数据;
2.如果一个block能装下一个文件的数据,则该block剩下空间不能够被使用

从上面信息来看,一个inode最多也就记录32个block信息(暂且忽略inode要记录属性的空间)
假设一个block采用大小格式为1KB,则一个文件理想状态最多也就存储32KB的数据,这…无法接受
于是,聪明的人就采用间接记录的方式,即再用一个block来当作记录block地址的记录表,这样一个1KB的block就能再记录256条block地址信息(256 = 1K / 4Byte)
所以inode记录block区域定义为12个直接、一个间接、一个双间接、一个三间接记录区,具体如下:
inode结构
则存储空间大小:
12个直接指向:12 * 1K = 12K
一个间接:256 * 1K = 256K(一个间接block能记录256个block地址)
一个双间接:256 * 256 * 1K (256个block不是指向自己数据block,而是再各自指向一个block记录表,这样总共就能指向256*256个数据block):
一个三间接:256 * 256 * 256 * 1K(原理同上,自己结合上图捋一下)
总共能存储的大小为:16G = 12K + 256K + 256*256K + 256 * 256 * 256K

df 可调出目前挂载的设备
df命令

dumpe2fs可以查看某个文件系统的superblock,inode和block信息
dumpe2fs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值