Linux下恢复误删除的文件

原文地址:http://www.libenfu.com/vim-分区下误删的文件,恢复文件全记录-转

当时我的工作目录是/source/needrecovered

$ pwd
/source/needrecovered

原本打算清空其中的一个子文件,

$ rm -rf canbedeleted/html

却打成如下命令:

$ rm -rf canbedeleted/ *

当时我琢磨着今天怎么删个小文件夹这么慢呢。等我仔细看了下命令,反应过来的时候,已经太迟了,整个工作目录被清空了 。

没辙了,只能先到网上找找解决方案了,网上大致提到的方法有两种:一种是利用debugfs;第二种是利用ext3grep

第一种方法,我尝试了若干次都以失败告终,第二种成功了。但是相同的是:两种方法首先提到的都是将对该分区进行操作的应用先全部关闭,具体如下:

以下的操作尽量使用root操作,以提高数据恢复的成功率。

#该命令用于列出操作该分区的进程
fuser -v -m /source
#如果没有很重要的进程,利用下面的命令将其全部 kill 掉
fuser -k -v -m /source

执行上面命令的时候,务必要将你的工作目录切换到/source以外,否则你的sshd会被kill掉。

这样子可以达到两个好处

1) 防止新的文件操作影响数据的恢复

2) 方便对磁盘或者分区进行进一步的操作,如:mountumount

接下来我们看看磁盘分区情况:

$ df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda8     ext3    7.9G  6.3G  1.2G  84% /source
/dev/sdb1  fuseblk    299G  266G   33G  90% /data/

需要恢复的分区是/dev/sda8,挂载点是/source

先将此分区卸载,并在/data分区建立一个用于存储备份数据的文件夹。

umount -v /source
mkdir -p /data/recovery

现在轮到主角登场了,先去下载一份ext3grep的源码,并安装:

cd /data/recovery
#此链接地址以官网最新版本为准
wget http://ext3grep.googlecode.com/files/ext3grep-0.10.2.tar.gz
tar xfz ext3grep-0.10.2.tar.gz
cd ext3grep-0.10.2
./configure --prefix=/data/recovery
make && make install

接下来就进入正式的恢复工作,先对需要恢复的磁盘进行扫描。

cd /data/recovery
nohup /data/recovery/bin/ext3grep /dev/sda8 --ls --inode 2 &
#建议使用 nohup 和 &,因为如果分区很大的话耗时比较长

扫描完毕后,/data/recovery中会出现两个分别名为c0d2.ext3grep.stage1c0d2.ext3grep.stage2的文件。前者可以直接忽略,后者里面保存着可以被恢复备份的文件名。

由于我需要备份的文件很多,几十G,就用下面这个命令进行全部恢复。

cd /data/recovery
nohup /data/recovery/ext3grep/bin/ext3grep /dev/sda8 --restore-all &
#建议使用 nohup 和 &,因为如果分区很大的话耗时比较长

需要注意的是,restore-all参数会将整个磁盘所有文件(已删除可恢复的文件和未被删除还存在的文件)进行恢复和备份处理,所以请确认你的存放恢复文件的分区有足够的空间。

如果仅仅是恢复几个文件的话,建议使用restore-file参数 备份的文件会存放在工作目录的名为RESTORED_FILES的文件夹里,本文中就是cd /data/recovery/RESTORED_FILES

时间: 2024-10-21 14:15:05

Linux下恢复误删除的文件的相关文章

linux下恢复误删除的文件方法(ext2及ext3)

linux下恢复误删除的文件方法(ext2及ext3) 2009-12-19 15:23:47 分类: LINUX 如果是ext2文件系统的,直接用debugfs是可以恢复出来的,但对于ext3,debugfs就无能为力了,好在我们有了ext3grep这个开源工具(http://code.google.com/p/ext3grep/)! 对于ext2 1.在/data(/dev/sdb)上创建并删除测试文件(作测试目的以plantodelete为例) #vi plantodelete 输入Thi

恢复Linux下被误删除的文件(笔记)

恢复Linux下被误删除的文件 [[email protected] ~]# mount /dev/cdrom /mnt/ 分一个区:sda4  查找:extundelete 分一个区:sda4  [[email protected] ~]# mkdir /tmp/sda4 [[email protected] ~]# mkfs.ext4 /dev/sda4     格式化 [[email protected] Desktop]# echo $? 0 [[email protected] ~]#

linux lsof恢复误删除的文件

早上起来被告知昨晚误删除了3个mysql的文件,只能恢复了 这是删除前的文件信息: 首先lsof查看进程: 这里PID都是一样的,下面进入proc里ls -l查看: # cd /proc/8784/fd/ 这里可以看到ibdata1删除的信息了 接着直接cp复制 #cp 4 /tmp/ibdata1.bak 其余的2个同理恢复,下面是恢复后的文件: +++++++++++++++++++++++++++++++++++++++++++++ 虽然恢复了,但是事情绝对没有这么简单!!! 因为,在in

如何恢复Linux下被误删除的文件以及如何防止文件被删除

[卸载被误删除文件所在的分区,或以只读方式mount] 当你发现你误删除了文件后,要做的第一件事情是马上卸载被误删除文件所在分区,或者以只读的方式来挂在该防区.如果误删除的是根分区,最好直接断电,进入单用户模式,以只读的方式挂在分区,然后再进行恢复 mount -o ro,remount /dev/sdb /mnt 如果删除的不是根分区,使用umount来将该分区进行卸载   umount /dev/sdb3 [安装Ext3grep工具] 下载Ext3grep工具,http://code.goo

linux下恢复误删除的数据文件

在linux系统运维中,经常会遇到各种因操作不慎.操作失误等行为导致数据丢失的情况,此时我们可以利用extundelete进行数据的恢复.一. 实验前的准备 新建一个磁盘 在虚拟机设置窗口中,找到"硬盘",点击"添加",在打开的"添加硬件向导"窗口中,选中"硬盘",点击下一步,接下来我们直接默认选择"下一步",直到最后选择"完成",2.重启系统,我们可以用 init 6 这条命令重启系统

win7下恢复误删除的文件

这个方法可以恢复两种情况下删除的文件和文件夹,并且没有运行磁盘整理,且系统完好: 1. 有的时候删除文件的时候按了快捷键,Shift+Delete,这样的文件不会进入回收站,直接被删除了. 2. 文件被放入了回收站,但后来清空了回收站. 步骤一:单击"开始"--"运行",然后输入regedit 步骤二:打开注册表后,依次展开 HEKEY_LOCAL_MACHIME/SOFTWARE/Microsoft/Windows/CurrentVersion/Explore/D

【学神-RHEL7】1-4-1-Linux文件管理和恢复误删除的文件

  Linux基本文件管理 本节所讲内容: Linux系统目录结构 相对/绝对路径 创建/复制/删除文件 rm -rf / 意外事故 查看文件内容 xfs文件系统的备份和恢复 extundelete恢复ext4文件系统中误删的文件   Linux系统目录结构 /   通常称为根分区.所有的文件和目录皆由此开始.只有root用户对此目录拥有写权限. ---/etc  配置文件  包含所有应用程序的配置文件,也包含启动.关闭某个特定程序的脚本,例如, /etc/passwd,/etc/init.d/

Linux下为何都是文件的理解

所谓“文件”,就是在我们的电脑中,以实现某种功能.或某个软件的部分功能为目的而定义的一个单位. Linux都是以文件的形式存在,当我们访问某个文件(Linux中的文件有目录,连接,普通文本),由于Linux的文件的类型 而区分:如连接文件等,那使用这个文件时,那么就是调用了某个命令: 如普通文本文件时,那么当使用这个文件时,那就是访问该文件的内容 由于文件的类型的不同,从而区别于window系统下的应用:如播放器,EditPlus,浏览器,文件夹等,这些在Linux中都有 对于的不同类型的文件!

Linux下的删除过期文件操作

在实际的软件开发项目中,经常会有实现删除过期文件的需求.即要求程序能够自动删除多长时间之前生成的文件.本文提供了一个示例代码,为相关的开发工作提供了参考. 程序如下(本程序用makefile进行编译): /*********************************************************************** 版权所有 (C)2014, Zhou Zhaoxiong.* * 文件名称: TestFileDelete.c* 内容摘要: 用于演示Linux下过期