初步认识Linux的文件系统

    xiaoxiao2023-10-17  191

    本章重点:如何创建文件系统,包括分区,格式化与挂载等

    认识Linux文件系统

    文件系统的特性

    整块磁盘的物理组成主要有:

    圆形的碟片;机械手臂,以及在机械手臂上的磁头;主轴马达,可以转动的碟片,让机械手臂的磁头在碟片上读取数据;扇区为最小的物理存储单位,且依据磁盘的设计不同,目前主要有512B和4kB两种格式;将扇区组成一个圆,那就是柱面;早期的分区主要以柱面为最小分区单位,现在的分区通常使用扇区为最小分区单位磁盘分区表主要有两种格式,一种是限制较多的MBR分区表另一种是比较新且限制较少的GPT分区表;MBR分区表中,第一个扇区最重要,里面有:主引导记录及分区表,其中MBR占446B,而分区表则占64B;GPT分区表除了分区数量扩充较多之外,支持的磁盘容量也可以超过2TB;/dev/sd[a-p][1-128]:为物理磁盘的文件名;/dev/vd[a-p][1-128]:为虚拟磁盘的文件名;

    磁盘分区结束之后还需要进行格式化,格式化的原因:每种操作系统所设置的文件属性与权限并不相同,为了存放这些文件所需要的数据,因此就需要将分区进行格式化,以成为操作系统能够利用的文件系统格式。 文件系统的运行与操作系统的文件有关,而操作系统的文件由实际数据和属性权限等组成。 文件系统通常会将Linux操作系统的文件权限文件属性和实际数据这两部分数据分别存放在不同的区块; 超级区块:记录此文件系统的整体信息,包括inode与数据区块的总量,使用量,剩余量以及文件系统的格式与相关信息等; inode(128B):记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的区块号码; 数据区块:实际记录文件的内容,若文件太大时,会占用多个区块; 索引式文件系统: 此时操作系统能够据此来排列磁盘的读取顺序,可以一口气将四个区块的内容读出来。

    linux的ext2文件系统

    标准的ext2使用以inode为基础的Linux文件系统。 文件系统一开始就将inode与数据区块规划好了,除非重新格式化(resize2fs等命令修改其大小),否则iNode与数据区块固定后就不在变动。 为了放置当文件系统过大导致iNode与数据区块的数量太过庞大导致的不易管理,ext2文件系统格式化的时候是区分为多个区块群组,每个区块群组都有独立的iNode,数据区块,超级区块系统。 每一个区块群组的六个主要内容如下: ext2文件系统的区块基础限制:

    原则上,区块的大小与数量在格式化完后就不能在修改(除非重新格式化);每个区块只能放置一个文件的数据;承上,如果文件大于区块的大小,则一个文件会占用多个区块数量;承上,如果文件小于区块,则该区块的剩余容量就不能够在被使用了(磁盘空间浪费); 系统将iNode记录区块号码的区域定义为12个直接,一个间接,一个双间接与一个三间接记录区 注:iNode大小为128 B,记录一个数据区块需要4B。 superblock superblock是记录整个文件系统相关信息的地方,没有超级区块就没有这个文件系统,它记录的主要信息有: 数据区块与iNode的总量; 未使用与已使用的iNode与数据区块数量; 数据区块与iNode的大小(block为1,2,4k,iNode为128b或者256b); 文件系统的挂载时间,最近一次写入数据时间,最近一次检验磁盘的时间等文件系统的相关信息; 一个有效位数值,若此文件系统已被挂载,则有效位为0,若未被挂载,则有效位为1; 区块对照表 从其中可以知道那些区块是空的; dumpe2fs:查询ext系列超级区块信息的命令(鸟哥的linux私房菜p216)

    dumpe2fs 【-fs】 设备文件名 -b:列出保留为坏道的部分 -h:仅列出superblock的数据,不会列出其他的区段内容。

    与目录树的关系

    目录 文件 目录树读取 目录树是由根目录开始读起的,因此系统通过挂载的信息可以找到挂载点的iNode号码,此时就能得到根目录的iNode内容,并依据该iNode读取根目录的区块内的文件名数据,在一层一层的往下读到正确的文件名。 例题:系统是如何读取/etc/passwd的??

    ext2/ext3/ext4文件的存取与日志式文件系统的功能

    假设要新增一个文件,此时文件系统的操作是: 1. 先确定用户对于新增文件的目录是否具有w与x的权限,若有才能增加; 2. 根据iNode对照表找到没有使用的iNode号码,并将新文件的属性/权限写入; 3. 根据区块对照表找到没有使用中的区块号码,并将实际的数据写入区块中,并且更新iNode的区块指向数据; 4. 将刚刚写入的iNode与区块数据同步更新iNode对照表以及区块对照表,并且更新超级区块的内容;

    日志式文件系统 为了避免元数据与实际数据存放区产生不一致的情况有了日志式文件系统; 即: 将文件系统与目录树结合的操作成为挂载 挂载点一定是目录,该目录为进入文件系统的入口因此并不是你有任何文件系统都可以使用,必须要挂载到目录树的某个目录后,才能够使用该文件系统。
    最新回复(0)