Linux基础—深入理解Linux文件系统与日志分析
- 一、inode 与 block详解
- 1.inode 和 block 概述
- 2.inode的内容
- 3.inode的大小
- 4.inode的特殊作用
- 5.inode 的号码
- 6.查看文件的inode 号码
- 7.inode 耗尽故障处理
- 二、恢复误删除的文件
- 1.案例:恢复EXT类型的文件
- 2.案例:恢复XFS类型的文件
- xfsdump常用选项
- xfsdump使用限制
- 模拟删除并执行恢复操作
一、inode 与 block详解
1.inode 和 block 概述
- 文件数据包括元信息与实际数据
- 文件储存在硬盘上,硬盘最小储存单位是"扇区",每个扇区储存512字节
- block(块)
连续的八个扇区组成一个 block(4K)
是文件存取的最小单位 - inode (索引节点)
中文译名为“索引节点”,也叫 i节点
用于存储文件元信息
2.inode的内容
inode 包含很多的文件元信息,但不包含文件名,例如:
- 文件的字节数
所在块及块大小、inode号、文件的Group ID、文件拥有者的User ID、文件的读、写、执行权限、文件的时间戳
Linux系统文件有三个主要的时间属性,分别是ctime(change time),atime(access time),mtime (modify time)
ctime(change time):最后一次改变文件或目录(属性)的时间,例如执行 chmod、chown命令
atime(access time):最后一次访问文件或目录的时间
mtime(modify time):最后一次修改文件或目录(内容)的时间
3.inode的大小
inode也会消耗硬盘空间,每个inode 的大小,一般是128字节或256字节。inode的总数,在格式化时就给确定,使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
4.inode的特殊作用
- 由于inode号码与文件名分离,导致一些Unix/Liunx系统具有以下现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
移动或重命名文件时,只改变文件名,不影响inode号
打开一个文件后,系统用过inode号码来识别该文件,不在考虑文件名
5.inode 的号码
访问文件的简单流程:
1.系统找到这个文件名对应的inode号码;
2.通过inode 号码,获取inode 信息;
3.根据inode信息,找到文件数据所在的block,读出数据。
6.查看文件的inode 号码
语法:stat 文件名
ls -i 文件名
7.inode 耗尽故障处理
故障原因:目录中存在数量非常多的小字节缓存文件,占用的block 不多,但是占用了大量的 inode
故障现象:在硬盘还未存满的情况下,就无法在硬盘上创建新的文件
实验步骤:
1.磁盘分区(因为是做实验,磁盘分区设为20M就可以了),并进行初始化和挂载处理
2.进/ztm 目录下使用,for循环创建多个文件,并确认磁盘占用情况
3.解决方法,只需要找出该分区中占用大量inode号的空白文件,删除就行。
二、恢复误删除的文件
1.案例:恢复EXT类型的文件
1.在编译安装 extundelete软件包之前,要先安装两个依赖包e2fsprogs-libs和e2fsprogs-devel,使用rpm命令将其安装,安装完毕后,即可将上传的extundelete 软件包解压、配置、编译、安装。
2.使用fdisk 命令创建新分区,将其挂载到 /zhangsan 目录下,并创建一下文件和目录
3.模拟误操作并恢复
2.案例:恢复XFS类型的文件
语法:xfsdump -f 备份存放位置 要备份的路径或设备文件
xfsrestore -f 恢复文件的位置 存放恢复后文件的位置
xfsdump备份级别(默认为0)
0: 完全备份
1-9: 增量备份
xfsdump常用选项
选项 | 说明 |
---|---|
-f | 指定备份文件目录 |
-L | 指定标签 session label |
-M | 指定设备标签 media label |
-s | 备份单个文件,-s 后面不能直接跟路径 |
xfsdump使用限制
只能备份已挂载的文件系统
必须使用root的权限才能操作
只能备份XFS文件系统
备份后的数据只能让 xfsrestore 解析
不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)
模拟删除并执行恢复操作
1.使用fdisk创建分区/dev/sdc2,格式化xfs文件系统,并进行挂载
2.使用 xfsdump 命令备份整个分区
3.模拟数据丢失并使用 xfsrestore 命令恢复文件