解: 在Linux中恢复已删除的文件
1. 背景
紧急情况, 一些重要数据被误删, 除了没有备份.
数据路径为/data/webapps/xxxx/upload. 非常紧急,我没有
linux平台数据恢复经验. 但在搜索了我的材料和
进行多次测试, 大多数丢失的文件已经恢复.
2. yum 安装数据恢复工具.
(1) 安装 epel 存储库
yum 安装 epel -y
(2) 安装 extundelete -y
扩展删除 -v
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
我可以看到webapps的inode,
扩展删除 /dev/sda2 –节点 913921
我可以看到这个项目的inode,
扩展删除 /dev/sda2 –节点 913922
最后, 我找到了丢失的数据字典 “上传”.
扩展删除 /dev/sda2 –节点 913923
我们可以看到被标记为缺失的数据 “已删除”,所以这些数据需要
被追回.
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 指针, 真正的文件仍在磁盘中.
如果磁盘以读写方式挂载,那些被删除的数据块将被文件系统重新分配, 和
如果数据块被覆盖,数据将真正丢失.