深入理解LINUX文件系统

网友投稿 272 2022-11-05

深入理解LINUX文件系统

inode与block概述

文件数据包括元信息与实际数据文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节block(块)连续的八个扇区组成一个block(一个块是4k大小)是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。文件数据包括实际数据与信元信息(类似文件属性)。文件数据存储在“块“中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域叫做inode。因此,一个文件必须占用一个inode,并且至少占用一个block。inode不包含文件名。文件名时存放在目录当中的,linux系统中一切皆文件,因此目录也是一种文件。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名知识inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。所以,当用户在linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码:通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据,如果无,告知没有权限。inode(索引节点):中文译名为“索引节点”,也叫i节点,用于存储文件元信息。

inode包含文件的元信息(不包含文件名)

1、文件的字节数,2、文件拥有者的User ID,3、文件的Group ID,4、文件的读、写、执行权限,5、文件的时间戳。

查看文件名对应的inode号码有两种方式:

stat 文件名stat查看inode号的信息时候有三个时间:atime(accesstime):当使用这个文件的时候就会更新这个时间mtime(modification time):当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。ctime(status time):当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。

inode也会消耗磁盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区,存放inode所包含的信息。每个inode的大小,一般是128字节或256字节。通常情况下不需要关注这单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df -i"命令即可查看每个硬盘分区对应的inode总数和已经使用的inode数量。

由于inode号码与文件名 分离,导致linux系统具备以下几种特有的现象:1、文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用。2、移动文件或重命名文件,只是改变文件名,不影响inode号码;3、打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。4、使用 vi 编辑器修改文件数据保存后,会生成一个新的inode号码。

目录文件的结构

目录也是一种文件
目录文件的结构
文件名1 inode号码1
文件名2 inode号码2

用户通过文件名打开文件时,系统内部的过程1、系统找到这个文件名对应的inode号码2、通过inode号码,获取inode信息3、根据inode信息,找到文件数据所在的block,读取数据

删除某一个inode号的两种方法find ./ -inum 52305120 -exec rm -i {} \;find ./ -inum 52305120 -delete

实验

实验一:inode节点耗尽故障处理

使用fdisk创建分区/dev/sdb1,分区大小20M即可fdisk /dev/sdbmkfs.ext4 /dev/sdb1mkdir /testmount /dev/sdb1 /testdf -i ==//模拟inode节点耗尽故障==for ((i=1; i<=7680; i++)); do touch /test/file$i;done 或者使用 touch {1..7680}.txtdf -i df -hT/删除文件恢复rm -rf /text/*

实验二:恢复EXT类型的文件

实验三:恢复XFS类型的文件

xfsdump 命令格式

xfsdump -f 备份存放位置 要备份的路径或设备文件xfsdump 备份级别(默认为0)0:完全备份1-9:增量备份

xfsdump 常用选项-f:指定存储目的地-L:指定转储会话的标签-M:为第一个媒体对象指定一个标签(例如,tape car‐tridge) 在会话期间写入相应的目的地。 -s:将转储限制为包含在指定路径名中的文件

模拟删除并执行恢复操作

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:国内小时数据流量(国内小时数据流量可以开热点吗)
下一篇:扫身份证识别健康码设备(扫身份证识别健康码设备有哪些)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~