图文详解——inode与block,模拟inode号耗尽、EXT和XFS类型文件恢复

  • 一、inode与block
    • 1、概论
      • 扇区(sector)
      • 块(block)
      • 索引节点(inode)
      • 系统访问文件过程
    • 2、查看文件名对应的inode号的方式
    • 3、注意事项
    • 4、特点
    • 5、Linux系统文件的三个主要的时间属性
  • 二、inode节点耗尽故障处理
    • 1、进行分区
    • 2、格式化成ext4格式
    • 3、进行挂载,并删除挂载目录内已有文件
    • 4、模拟故障
    • 5、查看inode号和占用空间大小情况
    • 6、恢复方式:删除无用文件,以恢复节点数
  • 三、EXT文件误删除处理办法
    • 1、导入extundelete软件包
    • 2、安装环境依赖包
    • 3、安装extundelete软件
    • 4、挂载目录内创建文件,并赋予内容,然后查看inode号
    • 5、删除刚刚创建的文件,并解挂载,用来模拟故障
    • 6、进行恢复操作
  • 四、xfs类型文件备份和恢复
    • 1、xfs类型文件备份和恢复
    • 2、故障模拟
      • ①、新建分区
      • ②、格式化分区,并挂载,复制实验内容到挂载目录,创建目录和子文件
      • ③、安装xfsdump软件
      • ④、备份整个分区
      • ⑤、模拟故障,并进行恢复

一、inode与block

1、概论

扇区(sector)

  • 文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区(sector),每个扇区存储512字节。

块(block)

  • 一般连续八个扇区组成一个""(block),一个块是4K大小,是文件存取的最小单位,文件数据存储在“块”中。
  • 操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。

索引节点(inode)

  • 文件数据包括实际数据与元信息(类似文件属性)。
  • 文件数据存储在"块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode
  • 因此一个文件必须占用一个inode,并且至少占用一个 block。
  • inode不包含文件名。文件名是存放在目录当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
  • 每个inode都有一个号码。操作系统用inode号码来识别不同的文件。Linux内部不使用文件名,而使用inode号来识别文件。
  • 文件名只是inode号便于识别的别称。文件名和inode号是一一对应的关系,每个inode号都对应一个文件名。

系统访问文件过程

  • 当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码,获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

2、查看文件名对应的inode号的方式

 第一种方式:  ls -i 文件名第二种方式:  stat  文件名

3、注意事项

  • inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盏分成两个区域。

    • 一个是数据区,存放文件数据;
    • 另一个是inode区,存放inode所包含的信息。
    • 每个inode的大小,一般是128字节或256字节。
  • 通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了。
  • 执行“df -i”命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。

4、特点

由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:

  • 1、文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用。
  • 2、移动文件或重命名文件,只是改变文件名,不影响inode号码。
  • 3、打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。
  • 4、文件数据被修改保存后,公生成一个新的inode号码。

5、Linux系统文件的三个主要的时间属性

  • ctime(change time)

    • 最后一次改变文件或目录(属性)的时间
  • atime(access time)
  • 最后一次访问文件或目录的时间
  • mtime(modify time)
    • 最后一次修改文件或目录(内容)的时间

二、inode节点耗尽故障处理

1、进行分区

2、格式化成ext4格式

3、进行挂载,并删除挂载目录内已有文件


4、模拟故障

5、查看inode号和占用空间大小情况


6、恢复方式:删除无用文件,以恢复节点数

三、EXT文件误删除处理办法

1、导入extundelete软件包

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

2、安装环境依赖包


3、安装extundelete软件


4、挂载目录内创建文件,并赋予内容,然后查看inode号

5、删除刚刚创建的文件,并解挂载,用来模拟故障


6、进行恢复操作

四、xfs类型文件备份和恢复

1、xfs类型文件备份和恢复

  • CentOS 7 系统默认采用 xfs类型的文件,xfs 类型的文件可使用 xfsdump 与 xfsrestore 工具进行备份恢复。
  • xfsdump的备份级别有两种
    • 0表示完全备份(默认为0)
    • 1-9表示增量备份
xfsdump 命令格式 xfsdump -f 备份存放位置 要备份的路径或设备文件
xfsdump 命令常用的选项 -f 指定备份文件目录
-L 指定标签 session label
-M 指定设备标签 media label
-s 备份单个文件,-s 后面不能直接跟路径
xfsdump使用限制 只能备份已挂载的文件系统
必须使用root的权限才能操作
只能备份 XFS 文件系统
备份后的数据只能让 xfsrestore 解析
不能备份两个具有相同 UUID 的文件系统(可用 blkid命令查看)

2、故障模拟

①、新建分区

②、格式化分区,并挂载,复制实验内容到挂载目录,创建目录和子文件

③、安装xfsdump软件

④、备份整个分区

⑤、模拟故障,并进行恢复

模拟inode号耗尽、EXT和XFS类型文件恢复(详细图解)相关推荐

  1. 【修改MySQL端口号(没有my.ini文件)详细图解】

    修改MySQL端口号(没有my.ini文件) 前置方案 安装服务方案 前置方案 PS:修改MySQL端口号,网上大部分都是修改my.ini文件 有my.ini文件的参考地址 安装服务方案 对于没有my ...

  2. Linux文件系统与日志分析(inode、inode节点耗尽故障处理、文件备份和恢复、日志文件管理)

    Linux文件系统与日志分析 一.inode和block概述 1.文件和扇区 2.块(block) 3.文件数据 二.inode(索引节点) 1.inode的内容 2.inode的号码 3.inode ...

  3. 剪切文件_lammps模拟带缺陷镍板剪切变形(in文件及注释)

    本期给大家带来lammps模拟带缺陷镍板剪切变形的in文件及其详细注释.初始模型如图一所示: 图1 生成的初始模型 in文件及注释如下: #利用eam势函数模拟带缺陷镍板的剪切 #模型构成--上下镍板 ...

  4. Linux之XFS文件恢复

    xfs类型文件备份恢复 我们使用的centos 7 默认使用的是xfs 类型文件系统,可以用xfsdump 与 xfsrestore 工具进行备份恢复. xfsdump 的备份级别:0 :表示完全备份 ...

  5. python通配符搜索文件_Python 如何查找特定类型文件

    写在之前 今天的文章是介绍如何用 Python 去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件获取属性的操作,可以 ...

  6. 【AWSL】之Linux文件系统与日志分析(inode、恢复EXT类型的文件、恢复XFS类型的文件)

    序言 这里我主要介绍Linux文件系统与日志分析 文件系统与日志分析 序言 一.inode与block 1. 概述 ①inode的内容 ②inode号码 ③文件存储 ④inode的大小 ⑤inode的 ...

  7. inode节点耗尽故障处理

    问题描述: 磁盘还有容量,却创建不了文件 [root@localhost test]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda3 56G 8.0G 48G 15% / ...

  8. [转]文件IO详解(二)---文件描述符(fd)和inode号的关系

    原文:https://www.cnblogs.com/frank-yxs/p/5925563.html 文件IO详解(二)---文件描述符(fd)和inode号的关系 ---------------- ...

  9. LWN: Btrfs inode号问题的解决方案!

    关注了就能看到更多这么棒的文章哦- The Btrfs inode-number epic (part 2: solutions) By Jonathan Corbet August 23, 2021 ...

最新文章

  1. eruda/vconsole 手机端调试利器
  2. 震撼!波士顿动力最新逆天机器人视频,倒立翻筋斗!人类集体沉默...
  3. 小女出世,暂停工作,全职照料大人小孩
  4. 搜索python题目的软件_Python编程快速上手——正则表达式查找功能案例分析
  5. 开始学习 refactoring:improving the design of existing code
  6. python测试rabbitmq简易实例
  7. 风险案例-24期-缺少严格的变更及版本控制流程,导致问题反复,调试工作量和时间增加...
  8. 一张图学会Python3的基本用法
  9. Linux字符设备和块设备的区别
  10. 二级mysql与access数据库_2017计算机二级Access数据库基础教程
  11. 计算当前时间到午夜零点的时间差——Java(JDK1.8)
  12. CorelDRAW X8 /CDR2020官方序列号密钥下载矢量绘图软件
  13. 使用POI读写word doc文件
  14. revit二开之获取嵌套族中的子族(过滤族)
  15. 两万字,清华刘云浩教授回答新生关于AI的90个问题
  16. SkinH皮肤使用教程,及皮肤效果测试工具
  17. WIN10安装VC6.0无法使用的解决办法
  18. 纳米孔测序仪市场现状研究分析与发展前景预测报告
  19. [附源码]java毕业设计房屋中介管理系统
  20. 【渝粤教育】电大中专市场营销管理_1作业 题库

热门文章

  1. 【专场报名】七牛云音画质量优化专场
  2. 音视频技术开发周刊 | 137
  3. 报告显示H.264份额进一步提升 1080p最受欢迎
  4. Golang 编程思维和工程实战
  5. 还在用 Win?教你从零把 Mac 打造成开发利器
  6. 2019 WAIC | 腾讯张正友:人工智能的热与酷
  7. PMP之工具与技术---假设条件和制约因素
  8. cmake使用示例与整理总结
  9. 光模块的分类与HBA卡的区别
  10. Intel提供的面向机器学习和深度学习的优化工具和框架