基于ext4的文件系统删除文件后的恢复方法

警告:若数据块被覆盖,则无法恢复,第一时间问清楚是什么时候删除的数据,叮嘱不要继续再动了。

  1. 安装恢复软件extundelete
    yum install extundelete -y
  2. 如果是挂载的磁盘请卸载磁盘

    umount -lf /dev/sdb

  3. 从根节点开发扫描,扫描结果如下所示

    extundelete --inode 2 /dev/sda2

  4. 找到被删除文件所在的父目录或祖父目录的号码继续向下扫描(目录的inode号是其目录下面其他文件的开始的inode号,所以以它为基准向下扫描)

  5. 被删除的文件在3306目录,所以继续以3306的inode号为起始扫描

    extundelete --inode 3801090 /dev/sda2

  6. 恢复被删除的文件(执行这条命令前,请cd进入到空间足够的分区,以免恢复造成空间不足)

    extundetele --restore-inode 3801094 /dev/sda2

  7. 文件恢复后存放在执行命令时所在目录下的RECOVERED_FILES目录下,名称已变,建议文件数不多,一个个恢复再改名

  8. 恢复整个文件夹则不用改名,做这步前最好把文件夹中的内容备份到其他地方,以免恢复被覆盖,未测试过

    extundelete /dev/sda2 --restore-directory /data/3306/

  9. 注意事项

    如果是生产环境,上面有其他业务,应该确保在用户访问量最低的半夜进行,恢复需要卸载磁盘,不卸载没有尝试过,主要是有数据还在写入到磁盘,容易出错。

  10. 善后工作

    收回非必要的权限,目录755,文件644,上线代码可用jenkins配合shell,shell拷贝前备份原来的包,如果没有这套最好让运维人员帮助上线,原则上开发人员没有任何权限。顶多给一个启动相关服务,查看相关日志的权限。公司最重要的是制度流程,什么人有什么权限必须要有书面规定,人员要权限也必须有申请记录,以免自己背黑锅!

时间: 2024-10-21 22:17:25

基于ext4的文件系统删除文件后的恢复方法的相关文章

linux 删除文件后空间没有释放的解决办法

清空没用的文件,当我删除文件后,发现可用空间沒有变化 os:centos4.7 现象: 发现当前磁盘空间使用情况: [[email protected] ~]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/sda1             981M  203M  729M  22% /none                   16G     0   16G   0% /dev/shm/dev/sda9    

liunx删除文件后磁盘未减小

一. 场景一:进程打开此文件 当一个文件正在被一个进程使用时,用户删除此文件,文件只会从目录结构中删除,但并没有从磁盘删除.当使用这个文件的进程结束后,文件才会真正的从磁盘删除,释放占有的空间. 我们发现剩余磁盘空间比较少时,回去删除一些大的临时文件或者log文件,如果删除之后会发现磁盘空间并未减少,那么可以通过"lsof"命令去查看正在使用该文件的进程,然后再重启该进程或者服务. [例子] 现在发现磁盘空间的占用了99%,剩余空间只剩下522M. [plain] view plain

删除文件后,磁盘空间没有释放的处理记录

问题说明: IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件.但是发现删除该文件后,/分区的磁盘空间压根没有释放出来,使用率还是100%!这是为什么呢?? [[email protected] ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 58G 7.8G 47G 100% / tmp

Xcode4删除文件后missing file警告

1.运行终端,执行命令行进入missing file目录,然后运行 svn delete nameOfMissingFile或git rm nameOfMissingFile 2.删除隐藏的.svn文件.命令行运行defaults write com.apple.finder AppleShowAllFiles TRUE?killall Finder开启显示隐藏文件,然后到工程目录下删除.svn文件,然后再恢复defaults write com.apple.finder AppleShowAl

MyISAM表的.frm文件丢失后的恢复方法

MyISAM表的.frm文件丢失后的恢复方法: 1.创建实验用的MyISAM表t1,并插入数据: mysql> create table t1(id int) engine=myisam; Query OK, 0 rows affected (0.01 sec) mysql> insert into t1 values(1),(2),(3),(4),(5),(6),(7),(8); Query OK, 8 rows affected (0.00 sec) Records: 8  Duplica

sd卡删除文件了能恢复吗?恢复的具体方法

sd卡删除文件了能恢复吗?恢复的具体方法.我们现在很多的时候或许并不是使用我们的SD卡去进行数据的存储,但是有的时候,我们会因为自己的一些细小的原因,将我们的文件存储到我们的SD卡上. 那么当我们删除了我们SD卡上的数据的时候,我们该怎么办呢?我们是不是可以恢复呢?我们又该怎么去进行恢复呢?若是你也不清楚的话,不用担心,我们或许可以用下面的方法找回. 1.在过程刚刚开始的时候,打开我们丢失数据的电脑,然后在电脑浏览器上下载并安装"互盾数据恢复软件",之后对软件进行安装等待安装结束: 2

linux 磁盘删除文件后无法释放空间

预上线环境测试人员发现磁盘空间沾满,于是使用df -h 和 du -sh * 找到了大文件,并删除. 但并未释放空间,df -h 还是显示占用率为100%,此时du -sh * 显示占用只有7G,与df -h 查看到的内容不符. 在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接.然而如果文件是被程序占用的,则无法真正的清理磁盘空间,文件还是物理存在的. 此时使用lsof | grep deleted 查看 [[email protected] /]

RHEL6删除文件后未释放空间

早上一个网站页面打开空白,后来查看是磁盘空间满了,查看是nginx的access.log占用了170多个G,于是通过rm将其删除,后重启nginx问题依然,此时再查看磁盘发现空间并未释放 [[email protected] logs]# du -h * 176G access.log 0 error.log 4.0K nginx.pid [[email protected] logs]# du -sh  176G . [[email protected] logs]# rm access.lo

linux删除文件后沒有释放空间

在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被 打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空间也一直被占用.而我删除的是oracle的告警log文件删除的时候文件应该正在被使用. 首先获得一个已经被删除可是仍然被应用程序占用的文件列表,例如以下所看到的:lsof |grep deleted