ext文件系统原理基础

一.文件挂载配置文件/etc/fstab
1./etc/fstab文件配置文件
ext文件系统原理基础_第1张图片
以上图为例文件挂载配置文件/etc/fstab
[1]每行定义一个要挂载的文件系统
[2]要挂载的文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
[3]挂载选项:默认defaults ,包含了rw,suid,dev,exec,auto,nouser,async
[4]转储频率 #常用0
0 : 不做备份
1 : 每天备份
2 : 每隔一天转储
[5]自检次序 #常用0
0 : 不自检
1 : 首先自检,一般只有rootfs才用1

二.文件系统上的inode索引概念
首先,附上一张文件系统原理图
ext文件系统原理基础_第2张图片
如图所示,我们接下来慢慢讲解

1.文件系统
[1]超级块来i奥数整个文件系统的大图结构,如多少个块组,挂在选项

tun2fs -l /dev/sda1 #来查看全局情况

[2]如果使用dump2fs命令,不但显示文件系统的信息,还能显示每个块组信息

dump2fs /dev/sda1 
checksum 0x46d7,unused inodes 1989  #这里checksum指效验码,相当于指纹,数据存放时可能因为一些原因发生错误,因此自检时要运算校验码,并和之前存储的校验码作比较,若不一样,说明数据已不可靠

[3]checksum机制,指效验码,相当于指纹,数据存放时可能因为一些原因发生错误,因此自检时要运算校验码,并和之前存储的校验码作比较,若不一样,说明数据已不可靠。

[4] Inode (index node,索引节点)
数据为数据和元数据组成,每个数据,都有元数据,包括它的大小,时间戳,权限,属主属组等信息,每一个能来存储单个文件的所有属性的信息这个特定格式存储空间就是一个Inode,所以Inode也有编号,包含了文件元数据,我们访问任何一个文件时都要知道它的Inode,并通过它的Inode指向找Block块。

2.问:每当我们要访问一个文件时访问一个文件时都要先访问它对应的Inode,但我们怎么知道一个文件对应哪个Inode?
例:我们去找/var/log/message
解答:目录也是一个文件,在磁盘上也占有磁盘块,这个目录包含了每一个文件名以及对应的Inode编号,所以我们从根目录开始查找,而根目录是自我引用的,我们找到根就可以通过文件以及对应的inode编号找到根下面的所有文件。那么怎么理解根是自我引用的,可以将根理解为上帝,上帝创造了人,那么谁来创造上帝,内核加载了根。
如图可以解释我们是怎么找到/var/log/message文件

3.软连接和硬链接
[1]根据Inode索引流程可以延伸出软连接和硬链接
[2]软连接:引用了源文件的路径,记录了,可以对目录进行,可以跨分区使用,存放的内容是另一个文件路径名指向,其大小为指向路径的字符串长度,不增加文件或减少目标文件引用计数。不指向inode,不指向磁盘块,有自己的Inode.
[3]硬链接:指向同一个Inode的多个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数。
[4]命令

ln SRC DEST  #创建硬链接
ln -s SRC DEST #创建软连接

三.文件管理操作对文件的影响
[1]文件删除:把Inode编号引用计数降低为零,这样表示为空闲,对应的磁盘块标记为空闲,磁盘块的位图标记为空闲,这样方便之后其他数据覆盖使用。

[2]文件复制:创建新的空文件,然后把源文件复制一个副本到目标文件中去,这之间涉及到文件数据的读出和写入的过程,所以会比较慢!

[3]文件移动:如将 /etc/log/message移动到/etc/tem
将tem文件所对应的数据块中的Inode设置的和message数据块中的Inode设置的一样,这样就不涉及到数据的读取和写入了,只有做一个修改inode编号的操作。然后修改完成后就在log目录将记录message所对应的inode信息删除。
但是跨分区的文件移动与文件复制无异!!!

你可能感兴趣的:(ext文件系统原理基础)