Linux文件系统:分区与文件系统

系统中最重要的磁盘设备为硬盘。而文件系统是创建在硬盘上的,硬盘在出场时要进行低级格式化,然后进行分区,即指明起始柱面号及终止柱面号,再进行格式化,即往分区中写入文件系统特征,RHEL6默认为ext4。

1、文件的组成

文件系统的运行方式与操作系统的文件组成有关。文件的的组成除了文件实际内容之外,通常还含有非常多的属性,例如:文件权限(rwx)与文件属性(拥有人、拥有组、时间戳等)。文件系统通常会将这两部分的数据分别存放在不同的快,权限与属性放置到inode(索引节点)中,至于实际数据则放置到block块中。另外,还有一个超级块(super block)会记录整个文件系统的整体信息,包括inode与block的总量、使用量及剩余量等。

每个inode与block都有编号,这三个数据的意义可简要说明如下。

super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等。

inode:记录文件的属性,包括文件类型、权限、UID、GID、linkcount、文件大小、时间戳及文件数据所在的block编号。一个文件占用一个inode。

block:实际记录文件的内容,若文件太大,会占用多个block。

由于每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block编号。因此,如果能够找到文件的inode,那么自然就会知道这个文件所放置数据的block号码,当然也就能够读出该文件的实际数据了,这样磁盘就能在较短时间内读出全部的数据,读写的性能较好。这种方式称为索引文件方式。

2、文件系统的特性

文件由inode和block组成,系统一开始就将inode和block规划好了,除非重新格式化或利用resize2fs等命令更改文件系统大小,否则inode与block固定后就不会再变动。但如果文件系统很大,则需要的inode与block数量太大,将inode与block放置在一起则不容易管理。

因此,文件系统在格式化的时候基本上是区分为多个块组(block group)的,每个块组都有独立的inode/block/super block系统。ext4格式化后的结构为:

在整体的规划中,文件系统最前面有一个启动扇区(boot sector),这个启动扇区可以安装引导装载程序,用于将不同的引导装载程序安装到对应的文件系统最前端,而不用覆盖整块硬盘唯一的MBR,这样也才能够制作出多重引导的环境。每个块组的6个主要内容说明如下:

(1)data block(数据块):用来放置文件内容,在格式化时,block的大小就固定了,每个block都有编号,以方便inode的记录。

block的大小称为block size,block size 为文件系统的最小存储单元,只能存放单个文件,大小可能为1024B/2048B/4096B。若分区大小 > 500MB,则默认block size 为4096B。

使用命令tune2fs -l /dev/sda1可以查看分区信息,即查看该分区的超级块。可以在格式化一个分区时指定block size的大小,而不使用默认值,用命令mkfs.ext4 - b 4096、dev/sda9。

(2)inode table:inode表格,主要记录文件的属性以及该文件实际数据所对应的block编号。

(3)super block(超级块):记录整个文件系统的相关信息,没有super block,就没有这个文件系统了。可以使用命令dumpe2fs来查看super block的信息,该命令可以查看到非常多的信息,按照内容主要可以区分为上半部分为super block的内容,下半部分则是每个block group的信息。

每个block group都可能含有super block。但是,有人说一个文件系统应该仅有一个super block,这时候矛盾?事实上,除了第一个block group内含有super block之外,后续的block group不一定有super block,而若有则只是作为第一个block group内的super block的备份,这样可以进行super block的救援。

(4)file system description(文件系统描述):这个区段可以描述每个block group的开始与结束的block编号,以及说明每个区段(super block,inodemap,data block)分别介于哪一个block编号之间。这部分也能够用dumpe2fs来查看。

(5)block bitmap(块对照表):若要添加文件,就要用到block,此时可以通过blockbitmap来查找哪些block是空的,以便系统能快速找到可使用的空间来处置文件。同样地,当删除文件时,文件所占用的block就要被释放,此时需要在block bitmap中知道相应的block,将标志改为“未使用”。

(6)inode bitmap(inode对照表):与block bitmap功能相似,只是block bitmap记录的是使用与未使用的block编号,而inode bitmap记录的则是使用于未使用的inode编号。

3、目录的组成

在Linux系统中,由于目录也被看作文件,称之为目录文件,因此目录也由inode和block组成。其中:inode记录目录的相关权限与属性,并记录分配到的block编号;而block则记录了在这个目录下的文件名与该文件名所占用的inode编号。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值