> 文章列表 > Linux基础—深入理解Linux文件系统

Linux基础—深入理解Linux文件系统

Linux基础—深入理解Linux文件系统

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总数和已经使用的数量

Linux基础—深入理解Linux文件系统

4.inode的特殊作用

  • 由于inode号码与文件名分离,导致一些Unix/Liunx系统具有以下现象
    当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
    移动或重命名文件时,只改变文件名,不影响inode号
    打开一个文件后,系统用过inode号码来识别该文件,不在考虑文件名

5.inode 的号码

访问文件的简单流程:
1.系统找到这个文件名对应的inode号码;
2.通过inode 号码,获取inode 信息;
3.根据inode信息,找到文件数据所在的block,读出数据。

6.查看文件的inode 号码

语法:stat 文件名ls -i 文件名

Linux基础—深入理解Linux文件系统

7.inode 耗尽故障处理

故障原因:目录中存在数量非常多的小字节缓存文件,占用的block 不多,但是占用了大量的 inode

故障现象:在硬盘还未存满的情况下,就无法在硬盘上创建新的文件

实验步骤:
1.磁盘分区(因为是做实验,磁盘分区设为20M就可以了),并进行初始化和挂载处理
Linux基础—深入理解Linux文件系统
Linux基础—深入理解Linux文件系统
2.进/ztm 目录下使用,for循环创建多个文件,并确认磁盘占用情况

Linux基础—深入理解Linux文件系统

3.解决方法,只需要找出该分区中占用大量inode号的空白文件,删除就行。
Linux基础—深入理解Linux文件系统

二、恢复误删除的文件

1.案例:恢复EXT类型的文件

1.在编译安装 extundelete软件包之前,要先安装两个依赖包e2fsprogs-libs和e2fsprogs-devel,使用rpm命令将其安装,安装完毕后,即可将上传的extundelete 软件包解压、配置、编译、安装。
Linux基础—深入理解Linux文件系统

2.使用fdisk 命令创建新分区,将其挂载到 /zhangsan 目录下,并创建一下文件和目录
Linux基础—深入理解Linux文件系统
3.模拟误操作并恢复
Linux基础—深入理解Linux文件系统
Linux基础—深入理解Linux文件系统
Linux基础—深入理解Linux文件系统

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文件系统,并进行挂载
Linux基础—深入理解Linux文件系统
2.使用 xfsdump 命令备份整个分区
Linux基础—深入理解Linux文件系统
3.模拟数据丢失并使用 xfsrestore 命令恢复文件
Linux基础—深入理解Linux文件系统