Chinaunix首页 | 论坛 | 博客
  • 博客访问: 774281
  • 博文数量: 143
  • 博客积分: 2077
  • 博客等级: 大尉
  • 技术积分: 2393
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-28 12:57
文章存档

2016年(2)

2015年(3)

2014年(3)

2013年(41)

2012年(94)

分类: LINUX

2012-10-05 13:22:52

linux的Ext2文件系统
  格式化:每种操作系统所设置的文件属性、权限并不相同,为了存放这些文件所需的数据,此时就要将分区进行格式化,以成为操作系统能够利用的文件系统格式。

  linux文件系统将权限与属性放置到 inode 中,实际数据则放到 data block 中,还有一个超级块(super block)会记录整个文件系统的整体信息。每个inode与block都有编号,而每个文件都会占用一个inode,inode中有文件数据放置的block号码。我们可以找到文件的inode,然后找出文件所放置数据的block号码,之后读出数据。
  U盘等为 FAT格式,后一个数据位置记录在前一个数据块里,用久了得进行磁盘碎片整理。

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

  linux的这种索引式文件系统还有一个好处,就是不需要经常进行磁盘碎片整理。文件系统一开始就将inode与block规划好了,除非重新格式化或者利用resize2fs等命令更改文件系统大小,否则inode与block固定后就不会再改变了。

inode 记录的一些信息:
  该文件的访问模式(rwx)
  该文件的所有者与组
  该文件的大小
  该文件创建或者状态更改的时间
  最近一次读取的时间
  最近修改的时间
  定义文件特性的标志
  该文件真正内容的指向
  每个inode大小均固定为 128bytes
  每个文件只会占用一个inide
  承上,因此,文件系统能够创建的文件数量与inode的数量有关
  系统读取文件时需先找到 inode,并分析inode 所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。

block
  block 的大小与数量在格式化的时候就已经确定了,之后就不能再改变。大小要适宜,太大会浪费空间,太小inode可能会记录更多的block号码,读取性能不良。

superblock
  记录block与inode的数量
  未使用与已经使用的block/inode数量
  block与inode的大小
  文件系统挂载时间等
  一个validbit数值,若此文件系统已经被挂载,则validbit=0,若未被挂载,则validbit=1。

File systerm Description
  描述每个block group 的开始与结束的block号码。

block bitmap(块对照表)
  可以知道哪些block是空的。

inode bitmap (inode对照表)
  记录使用与未使用的inode号码。

dumpe2fs:查看 superblock 信息
  #dumpe2fs [-bh] 设备文件名
  -b: 列出保留为坏道的部分
  -h:仅列出superblock的数据,不会列出其他的区段内容。

例如:
#df              找出目前挂载的设备
        #dumpe2fs /dev/hdc2
  还可以用#ls -li  显示文件的inode号码。
  目录不会仅占用一个block。


与目录树的关系:
  当在linux下的ext2文件系统新建一个目录时,ext2会分配一个inode与至少一块block给该目录。其中,inode记录该目录的相关权限与属性,并可记录分配到那块block的号码;而block则记录在这个目录下的文件名与该文件占用的inode号码数据。
  目录并不只会占用一个block而已,也就是说:在目录下面的文件数如果太多,而导致一个block无法容纳的下所有的文件与inode对照表时,linux会给该目录多一个block来继续记录相关的数据。
  inode 本身并不记录文件名,文件名的记录是在目录的block中。
阅读(1060) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~