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中。
阅读(1097) | 评论(0) | 转发(0) |