ext2 文件系统

本文深入探讨磁盘分区概念及其文件系统(ext2)如何组织和分配磁盘空间,包括块和inode的统一编号,超级块、块组描述符表等组成部分,以及文件存储和管理机制,包括块bitmap、inode bitmap的使用,文件删除及真正删除方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道,一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的信息。

首先来看一个简单文件系统,硬盘的读写以扇区为基本单位一个扇区的大小为512Byte。如下图所示一个hello文件要存在磁盘上,需要保存文件名,文件的起始位置,文件大小等信息。一个真正的文件系统远远比这复杂,文件系统可以看做是对磁盘的抽象,方便人们使用。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取等。


接下来我们将引入ext2文件系统,文件系统中存储的最小单位是块(Block),一个块究竟多大是在格式化时确定的,例如mke2fs的-b选项可以设定块大小为1024、2048或4096字。可以使用stat命令看下:stat 后跟文件名或者目录,如下图可以看到块大小是4096Byte


下图是一个磁盘分区格式化成ext2文件系统后的存储布局,其中块和inode是统一编号,比如第一个块组块编号为1~100,则第二块为101~200.

首先是1KB 的启动块,启动块之后才是ext2文件系统的开始,ext2文件系统将整个分区划成若干个同样大小的块组(Block Group)每个块组都由以下部分组成超级块(Super Block)、块组描述符表(GDT,Group Descriptor Table)、块位图(Block Bitmap)、inode位图、inode表、数据块。



那么一个文件是如何存储的呢?这里我们以一个神探狄仁杰.mp4 文件为例,首先文件系统为其分配一个INode,然后INode中有60Byte的数据块指针,很多人不禁要问,假设一个指针为4个字节,那么60Byte只能指向15个数据块,文件要是比较大怎么办?这里会采用一级索引、二级索引、三级索引。这样就可存下非常大的文件。对应的Block bitmap

和INode Bitmap的位为1。

删除文件或者格式化磁盘就是将对应的Block  Bitmap 和INode BItmap 反转即可,这也说明了为什么删除文件比较快,如果要想真正删除文件可以采用大文件覆盖的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值