带你更深入的了解Linux文件系统(超详细!)(inode号耗尽故障处理、恢复误删文件以及分析日志文件)

本文深入讲解Linux文件系统的inode耗尽故障处理、误删文件恢复以及日志文件的分析。通过案例模拟inode耗尽,展示如何修复。介绍使用extundelete工具恢复误删文件。探讨xfs文件系统的备份和恢复方法。最后,详细阐述了日志文件的作用、分类、常见文件及分析方法,强调了日志管理策略的重要性。
摘要由CSDN通过智能技术生成


一、inode耗尽故障处理

  • 之前我们学习过,每个文件与inode是相互对应的关系,也就是说每个文件都会有一个inode号码,但这样就会有可能会发生inode已经用光,但硬盘还未存满的情况
  • 一旦发生这种情况后,我们就无法再在硬盘上创建新文件了,为了更直观的让大家理解,下面通过一个案例来模拟Linux文件系统中文件数量耗尽的故障

1.准备

  • 新建一块硬盘,创建分区/dev/sdb1,分区大小+30M即可(不用太大,这里只是模拟实验,不然inode号会太多)
  • 格式化,ext4格式(xfs也行)
[root@localhost ~]# mkfs.ext4 /dev/sdb1
  • 可能会发生一种情况:创建好分区后格式化发现没有这个磁盘文件,怎么办呢,这时建议将系统重启或者执行“partprobe”命令使操作系统检测新的分区表情况,以防止格式化分区时损坏硬盘中已有数据
  • 新建一个目录,挂载进去
    mark
  • 使用带“-i”选项的df命令确认该文件系统中i节点的使用情况,可见inode有7680个
    mark

2.模拟i节点耗尽故障

  • 编写一个脚本来模拟耗尽/dev/sdb1中的所有可用i节点(7680个)
  • 关于脚本程序后续再进行详细学习,这里仅做了解即可
[root@localhost test]# for ((i=1;i<=7680;i++));do touch /test/file$i;done 
touch: 无法创建"/test/file7670": 设备上没有空间
touch: 无法创建"/test/file7671": 设备上没有空间
touch: 无法创建"/test/file7672": 设备上没有空间
touch: 无法创建"/test/file7673": 设备上没有空间
touch: 无法创建"/test/file7674": 设备上没有空间
touch: 无法创建"/test/file7675": 设备上没有空间
touch: 无法创建"/test/file7676": 设备上没有空间
touch: 无法创建"/test/file7677": 设备上没有空间
touch: 无法创建"/test/file7678": 设备上没有空间
touch: 无法创建"/test/file7679": 设备上没有空间
touch: 无法创建"/test/file7680": 设备上没有空间        ##这里开始提示设备上没有空间了

  • 这时再查看一下分区可用inode,发现满了,再创建新的文件也无法成功,但是通过df命令查看该分区,仅用“4%”,还有很多可用空间;由此可以得出:磁盘创建文件的数量受到磁盘容量大小以及inode号的数量限制
[root@localhost test]# df -i /dev/sdb1
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1       7680    7680       0     100% /test
[root@localhost test]# touch xcf.txt
touch: 无法创建"xcf.txt": 设备上没有空间
[root@localhost test]# df -Th /test/
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sdb1      ext4   29M  916K   26M    4% /test

3.修复故障

  • 我们理解了故障的由来,那么问题就比较好解决了,可以“ls -a”查看所有文件(包含隐藏文件)
  • 然后找出该分区中占用大量i节点的细小文件,并进行转移或删除即可
  • 对于许多用户公用的文件系统,建议为相关用户设置磁盘限额(包括文件数量、磁盘空间两方面)

二、恢复误删的文件

  • 我们很多普通用户在删除一个文件的时候,实际上并不知晓inode节点和block数据,仅仅只是找到这个文件(名),然后删除
  • 实际上Linux是通过Link(链接)的数量来控制文件删除的,只有当一个文件不存在任何Link的时候,这个文件才会被彻底删除
  • 针对Linux系统下的EXT文件系统,可以用extundelete恢复工具来恢复文件,它是一个开源的Linux数据恢复工具,支持ext3、ext4文件系统(ext4只能在CentOS6版本中恢复)

1.准备(编译安装extundelete)

  • 可以接着刚才新创建好的那个分区接着做,不过要先解挂载,然后重新格式化为“ext3”再来挂载
[root@localhost test]# cd
[root@localhost ~]# umount /test/
[root@localhost ~]# mkfs.ext3 /dev/sdb1 
...略
[root@localhost ~]# mount /dev/sdb1 /test/
  • 在编译安装extundelete之前需要先安装两个依赖包(首先注意自己有没有挂载镜像)
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# yum -y install e2fsprogs-devel e2fsprogs-libs
...略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xucf1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值