文件系统类型

inode 和 block概述

文件数据包括元信息与实际数据

文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节

block(块)

连续的八个扇区组成一个block

是文件存取的最小单位

inode(索引节点)

中文译名为“索引节点”,也叫 i节点

用于存储文件元信息

文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在"块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。因此,一个文件必须占用一个 inode,并且至少占用一个 block。
inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。

在这里插入图片描述

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息,根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

使用stat命令可以查看某个文件indode信息

在这里插入图片描述

可以看到上图 有最近访问,最近更改,最近改动三行,释意如下

最近访问(accesstime): 当使用这个文件的时候就会更新这个时间

最近更改(modification time):当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

最近改动(status time): 当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。


使用find 查找超过30天的文件 ,并删除

find ./ - m +30 - exec rm - f {} \;

在文件追加内容,再查看文件最近更改时间

在这里插入图片描述


inode 的内容

每个inode 都有一个号码,操作系统用inode号码来识别不同的文件

Linux系统内部不使用文件名,而使用inode 号码来识别文件

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

由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除 inode,能够起到删除文件的作用;
find ./ -inum 50464299 - delete			##删除inode号

2.移动文件或重命名文件,只是改变文件名,不影响inode号码;

3.打开一个文件以后,系统就以 inode号码来识别这个文件,不再考虑文件名。

4.vi编辑器修改文件数据保存后 就会形成一个新的inode号

对于用户,文件名只是inode号码便于识别的别称

用户通过文件名打开文件时,系统内部的过程

1.系统找到这个文件名对应的inode号码
2.通过inode号码,获取inode信息
3.根据inode信息,找到文件数据所在额block,读出数据

在这里插入图片描述

除了stat命令查看inode号码,还有ls -i命令也能查看对应的inode号码

在这里插入图片描述


模拟inode节点耗尽故障处理

  1. 将虚拟机加入一块磁盘 分区大小为30M ,格式化挂载

在这里插入图片描述

2.用for循环写一条命令 来模拟indoe号耗尽

在这里插入图片描述

3.可以看到 indoe号已经耗尽

在这里插入图片描述

4.删除文件恢复

在这里插入图片描述


EXT 类型文件恢复

extundelete是一个开源的 Linux数据恢复工具,支持 ext3、ext4文件系统。(ext4只能在centos6版本恢复)

1.进行分区操作,并格式化

在这里插入图片描述

2.挂载目录,下载tar包

在这里插入图片描述

3.对下载好的tar包进行解压缩

在这里插入图片描述

  1. 进行yum安装

在这里插入图片描述

5.进行make编译安装

在这里插入图片描述

6.调用extundelete 移动到 /usr/local/bin/目录中

在这里插入图片描述

7.写入文件 ,准备实验

在这里插入图片描述

8.查看文件系统 /dev/sdb1 下存在哪些文件, i 节点 是从2 开始的 。2 代表该文件系统最开始的目录。

在这里插入图片描述

9.开始模拟 故障 ,恢复文件

在这里插入图片描述

10.恢复 /dev/sdb1 文件系统下的所有内容

在这里插入图片描述

11.在当前目录中 会出现一个 RECOVERED_FILES/目录,里面保存了已经恢复的文件

在这里插入图片描述


xfs 类型文件备份和恢复

xfsdump命令 它的备份级别有两种 分别是 0 :表示完全备份 1-9:表示增量备份

xfsdump的备份级别默认为 0

命令格式为:

xfsdump -f 备份存放位置 要备份的路径或设备文件

常用选项有:
-f: 指定备份文件目录
-L:指定标签session label
-M:指定设备标签media label
-s:备份单个文件,-s后面不能直接跟路径

使用限制:
1.只能备份已挂载的文件系统
2.必须使用root的权限才能操作
3.只能备份XFS文件系统
4.备份后的数据只能让xfsrestore解析
5.不能备份两个具有相同UUID的文件系统(可用blkid命令查看)


实验如下

1.先xfs格式化磁盘,进行挂载,备份文件目录

在这里插入图片描述

2.指定标签,指定设备标签

在这里插入图片描述

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_54059979/article/details/121582741