Linxu磁盘与文件系统管理:
- 在Win98之前文件系统采用FAT:磁盘碎片较多,需要定时清理提高文件读取效率
- 在Win2000以后采用NTFS:磁盘碎片相对减少,只需要适当定期清理.
- 在Linux中用 Ext2 (后来Ext3引入了日志文件等使更加完善):磁盘碎片比起前两种少得多,几乎没有,鸟哥说他在Linux下还没有进行过碎片整理- -..
Ext2文件系统:
首先我们来看张表:
(图片出处鸟哥Linux私房菜p200)
我们在Linux中文件信息包含了文件权限(rwx)和文件属性(所有者,群组,时间等),那么它是如何存取的呢?
原来,权限和属性存放在inode中,实际数据则存取在data block(数据块)中.
-
inode : 记录文件属性,一个文件会占用一个inode,同时记录文件数据所在的block号码.inode table记录了以下信息:文件访问模式、文件所有者和组、文件大小、文件创建和修改时间等。
可以用 ls -i 命令 查看对应占用的inode号码.
然而inode大小只有128bytes 它是怎么存取这么多信息呢?原来系统采用了一种类似于间接寻址的办法.如果信息不够存,inode会存取block的号码,然后在block存取对应的信息,如果再不够,就继续在block存取下一个block地址.通过直接+间接的方式来保存文件信息.注意: 系统读取文件时候需要先找到inode,分析所记录的权限和用户是否符合,然后再读取对应block内容.
block : 记录文件实际内容,如果文件太大,会占据多个block.
- superblock : 记录整个文件系统相关信息的地方,它包含了block与inode的总量大小.
- 块对应表(block bitmap):如果你需要添加文件,则需要找一个空的block来存取数据,那么block bitmap就是记录那些使用了的和空的block号. 新建文件的时候就会找到没有使用过的block写入数据,并且让inode指向这个block,随之更新superblock
- inode对照表 : 以此类推,这个和block bitmap功能类似,记录了那些使用了的和空的inode号.
- 文件系统描述说明(File system Description): 它记录了每个block group开始和结束的block号码.可以用 dumpe2fs 命令来查看