Linux文件系统

权限与属性放到inode中,数据则放到block区块中。另外,还有一个超级区块(super block)会记录整个文件系统的整体信息,包括 inode与block的总量、使用量、剩余量等等等。

  • · superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
    · inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码;
    · block:实际记录文件的内容,若文件太大时,会占用多个 block 。

这种数据存取的方法我们称为索引式文件系统(indexed allocation)。

文件系统一开始就将 inode 与 block 规划好了,除非重新格式化(或者利用 resize2fs 等指令变更文件系统大小),否则 inode 与 block 固定后就不再变动。

在整体的规划当中,文件系统最前面有一个启动扇区(boot sector),这个启动扇区可以安装开机管理程序, 这是个非常重要的设计,这样我们就能够将不同的开机管理程序安装到个别的文件系统最前端,而不用覆盖整颗硬盘唯一的 MBR, 这样也才能够制作出多重引导的环境啊!

Superblock 是记录整个 filesystem 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。他记录的信息主要有:
· block 与 inode 的总量;
· 未使用与已使用的 inode / block 数量;
· block 与 inode 的大小 (block 为 1, 2, 4K,inode 为 128 bytes);
· filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;
· 一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。

Directory不是文件,我们可以看作是文件系统中的一个属性,只是用来关连文件名与Inode number。

Leave a Comment