Linux文件系统ext2二

dumpe2fs [-bh]装置文件名
    -b:列出保留为坏轨的部分(一般用不到!)

    -h:仅列出superblock的数据,不会列出其他的区段内容


利用dumpe2fs可以查询到非常多的信息,不过依内容分为上半部分是superblock内容,下半部分是每一个block group的信息。
从上面的表格我们可以观察到这个第一个block为1,block大小为1024,详细信息就不再详列。

block group的内容我们只看Group0信息
        。Group0所占用的block由1到8192号,superblock则在第1号的block块内!
        。文件系统描述说明在2-3号block中
        。block bitmap在260 ,inode bitmap则在276,inode table在292-544
LINUX系统下,每个文件都会占用一个inode,且可依据档案的大小来分配多个block给文件使用,目录记录内容是文件名,一般
文件的才是实际记录数据的,那么目录与ext2文件系统如何记录数据的呢?
与目录树的关系
linux系统下,每个文档(不管文件还是目录)都会占用一个inode,而且依据文件内容的大小分配多个block给该文件使用它,
目录的内容在记录文件名,一班文件才是是记录数据内容的地方。

    目录
    当我们在linux下ext2文件选系统创建一个目录时,ext2会分配一个inode与至少一个block给该目录,其中
    inode记录给目录的相关权限于属性,并可记录分配到那块block号码,而block则是记录在这个目录下的文件名与该文件名占用的inode
    号码数据,也就是说目录所占用的block内容记录如下:
                |inode number| 文件名   |
                ---------------------------------
                |    654683   |MAS.CFG |
                |    324234   |dasd.sh     |

                ---------------------------------

某一目录内文件所占用的inode的号码时,可以使用ls -i这个命令,每个人选择的项目和分区不同,
所以系统说显示的结果也会是不同的。

查看某一文件的占用block的数量,可以使用ll -d /bin/to/some_file,文件的大小几乎都是block大小的整数倍。

文件:
当我们在linux下ext2文件系统创建文件,ext2会分配与相对文件大小的block数量给文件    

目录树的读取:
        inode本身并不记录文件名,文件名记录在目录的block中,因此,新增/删除/更名与目录的w权限有关这一特点,
应为文件名记录在目录的block中,当我们读取某一个文件是,就必须读到正确的inode与block,然后才能找到读取文件的inode号码
因此当我们读取一个文件时,就必须经过目录的inode与block,然后才能找到想要读取的文件的inode号,
最终读到正确的文件的数据。
        由于目录树是由根目录读起开始,因此系统通过挂载的信息可以找到挂载点的inode号码(通常一个filesystem的最顶层
        inode号码会有2开始),此时就能够找到目录的inode内容,并依据该inode读取目录的block内的文件数据,在一层一层往下读到找到正确的文件名。
例如读取/etc/passwd这个文件,系统经过多步奏是:
如图:


        1./的inode:
                透过挂载点的信息找到/dev/sda1的inode号码为2的根目录inode,且inode的权限(rx)
        2./的block:
                经过上一个步骤取得block的号码,并找到该内容有/etc/目录inode号码651522
        3.etc/的inode:
                读取651522号inode知道了我有r和x权限,因此可以读取etc/的block内容;
        4.etc/的block:
                经过上一个步骤取得block号码,并在block内容里找到passwd文件的inode号码(667138)
        5.paawd的inode:
                读取667138号inode,获得我有r和x权限,因此可以读取passwd的block内容;
        6.passwd的block:
                最后将该block内容的数据读出来。
filesystem 大小与磁盘读取效能:
    当一个文件系统的规划的很大时,由于硬盘上面的数据总是来来去去,所以在整个文件系统上面的档案通常无法连续写在一起(block号码不会连续坐在一起),、
所以,而填入式的数据填入没有使用的block当中,当文件写入的block真的分的很散,此时就会有所谓的文件离散的问题发生。
    虽然我们的ext2的inode已经将整个档案所记录的block号码上了,所以资料可以一次读取,
但如果档案太过离散,确实会造成读取效率低的问题。如果遇到这种问题,那么将整个文件系统内的数据全部复制出来,将filesystem重新格式化,在将数据写入回去
、可以解决这一问题。
    如果filesystem真的太大了,那么当一个文件分别记录在这个文件系统的最前面与最后面block号码中,
    此时会造成硬盘的机械手臂移动幅度过

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值