解: 在Linux中恢复已删除的文件

1. 背景

紧急情况, 一些重要数据被误删, 除了没有备份.

数据路径为/data/webapps/xxxx/upload. 非常紧急,我没有

linux平台数据恢复经验. 但在搜索了我的材料和

进行多次测试, 大多数丢失的文件已经恢复.

2. yum 安装数据恢复工具.

(1) 安装 epel 存储库

yum 安装 epel -y

(2) 安装 extundelete -y

扩展删除 -v

extudelete_version

3. 通过源码安装数据恢复工具.

yum -y install bzip2 e2fsprogs-devel e2fsprogs gcc-c++ make

wget http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2

焦油 jxvf extundelete-0.2.4.tar.bz2

cd extundelete-0.2.4

./配置

使 && 进行安装

 

4. 检查误删除的数据

由于缺失数据的路径有点深, 所以我需要从根字典中查找日期.

划分

扩展删除 /dev/sda2 –节点 2

check_delete1

check_delete2

check_delete3

我可以看到webapps的inode,

扩展删除 /dev/sda2 –节点 913921

check_delete4

我可以看到这个项目的inode,

扩展删除 /dev/sda2 –节点 913922

check_delete5

最后, 我找到了丢失的数据字典 “上传”.

扩展删除 /dev/sda2 –节点 913923

check_delete6

我们可以看到被标记为缺失的数据 “已删除”,所以这些数据需要

被追回.

 

5.  杀死一些使用这个分区的进程树并卸载

定影器 -k /
卸载 /

6、数据恢复

我可以恢复指定的字典. 根据当前根分区设置路径.

扩展删除 /dev/sda2 –恢复目录/webapps/xxxx/upload

 

由于一直存在对磁盘的读写, 所以一些属于丢失的inode

数据已经被分配,导致部分数据无法恢复. 恢复工具

告诉我哪个文件无法恢复. 但大部分文件已经恢复.

所以我检查了恢复的数据. 一个名为 RECOVERED_FILES 的文件夹已在

当前字典. 名为 RECOVERED_FILES 的恢复数据.

如果需要恢复所有丢失的数据,可以执行以下命令.

扩展删除 /dev/sda5 –恢复所有

extundelete 选项

选项:

–版, -[VV] 打印版本并成功退出.

–救命, 打印此帮助并成功退出.

–superblock 打印 superblock 的内容以及其余内容.

如果未指定操作,则隐含此选项.

–journal 显示日志内容.

–after dtime 仅处理在“dtime”上或之后删除的条目.

–before dtime 只处理在‘dtime’之前删除的条目.

行动:

–inode ino 显示有关 inode ‘ino’ 的信息.

–块 blk 显示块“blk”的信息.

–恢复 inode ino[,井野,…]

恢复文件(s) 具有已知的 inode 编号“ino”.

恢复的文件在 ./RECOVERED_FILES 中创建

以它们的 inode 号作为扩展名 (IE, 文件.12345).

–恢复文件‘路径’ 将恢复文件“路径”. '小路’ 相对于根

分区并且不以“/”开头’

恢复的文件是在当前创建的

目录为“RECOVERED_FILES/path”.

–恢复文件'路径’ 将恢复文件“路径”中列出的文件.

每个文件名的格式应与选项相同

至 –恢复文件, 每行应该有一个.

–恢复目录‘路径’

将恢复目录“路径”. '小路’ 是相对于

文件系统的根目录. 恢复的

目录在输出目录中创建为“路径”.

–restore-all 尝试恢复所有内容.

-j journal 从指定文件中读取外部日志.

-b blocknumber 打开时使用blocknumber处的备份超级块

文件系统.

-B blocksize 使用blocksize作为打开文件时的块大小

系统. 数字应该是字节数.

–日志 0 使程序静音.

–log filename 将所有消息记录到 filename.

–log D1=0,D2=filename 用逗号分隔的日志消息的自定义控制

下面的例子: 选项列表. Dn 必须是信息之一, 警告, 或者

–日志信息,错误错误. 省略‘=name’ 结果在消息

–使用指定的级别记录警告=0 将被记录到控制台.

–log error=filename 如果参数是‘=0’, 记录指定的

水平将被关闭. 如果参数是

‘=文件名’, 具有该级别的消息将写入文件名.

-o directory 将恢复的文件保存到指定目录.

恢复的文件在目录中创建

名为‘RECOVERED_FILES/’ 默认情况下.

 

删除数据后,首先要umount被删除数据所在的磁盘或分区.

原因: 如果root分区遇到删除, 你必须进入单用户模式, 然后安装这个

以只读模式分区. 因为系统只是删除文件的 inode 指针, 真正的文件仍在磁盘中.

如果磁盘以读写方式挂载,那些被删除的数据块将被文件系统重新分配, 和

如果数据块被覆盖,数据将真正丢失.

 

发表评论